在浏览器打开web.php利用BurpSuite抓包,web.php代码如下:
同样在浏览器打开demo.html利用BurpSuite抓包,代码如下:
上传文件
抓web.php,发送给Repeater
抓上传文件,发送给Repeater
将红框内的内容复制到抓取的web.php中
修改GET类型为POST并将传入code进行编码
传入的code为?><?='
.+ /???/????????[@-[]';?>
编码为?><?='.+/%3f%3f%3f/%3f%3f%3f%3f%3f%3f%3f%3f[%40-[]'%3b?>
发送后查看虚拟机/tmp目录下产生了临时文件
后临时文件消失
不进行编码也可以进行传递
产生临时文件
shell.php文件内容
param=.+/t*/* 其余步骤同上
传递成功。
试了试
报错失败,xdebug
mysql报错注入之floor报错
rand() 可以产生一个在0和1之间的随机数
rand(0)产生固定数
使用rand(0)查询emails表
floor() 函数的作用就是返回小于等于括号内该值的最大整数
rand产生的数乘 2 后返回 0 到 2 之间的随机数,配合 floor() 就可以产生0和1
查询users表
使用as用其他名字代替显示
不用as直接查询,结果一样
查询报错
原因:对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中,也就是说查出来的列必须在group by后面出现否则就会报错,或者这个字段出现在聚合函数里面
查看sql_model参数命令:SELECT @@SESSION.sql_mode;
解决方法:
set sql_mode =’STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’;
再次查询,成功
用group by函数进行分组,并按照x进行排序
报错
用1作为随机数种子,不会产生报错