1. sql 注入
waf baypass
搜索 :
from(.*)= \$
2. xss
3. 文件包含
伪协议绕过(如果限制了路径不能用伪协议和远程文件包含,如果限制了路径没有限制后缀可以包含上传的文件、日志文件、环境变量文件、sessions文件、临时文件)
- phar://
-
zip://
include($_GET['module'].'.inc');
// phar://path/file/xx(压缩的文件 绕过来包含脚本。
利用步骤:
1. 一句话脚本.php
2. 后缀改成inc
3.压缩文件
4. 改成.png
源代码搜索:$_FILE(php处理上传文件基本跟这个变量有关)
php里strtotime()函数可以将时间信息转换为时间戳。
防御:白名单
<? php
$m = array('about','xxx');
/* Include */
if (isset($_GET['module'])){
$a=$_GET['module']
if(in_array($a, $m))
include('./'.$_GET['module'].'.inc');
else
exit('include error');
4. 任意文件
这里user_avatar的值为2。多重设置,取最后一个值为最终值。
UPDATE users SET user_avatar = '1',user_avatar='2' WHERE user_name = 'test'#.png
',user_avatar='2' WHERE user_name = 'test'#.png
5. 越权操作
未判断id是当前用户还是其他用户
删除从Post处修改用户信息的代码,直接从sessionid获取用户id,这样用户就改不了了。