脚本注入1(boolean&&get)

现在,我们回到之前,练习脚本支持的布尔盲注(get型)。

布尔盲注的应用场景是查询成功和失败时回显不同,且存在注入点的地方。

这里以Less-8为例:

  发现查询成功时,会显示脚本注入1(boolean&&get);失败则无回显。

 

  同时发现,payload: ?id=0' or 1=1 --+ 可以查询成功;即此处存在注入点,or可以得到执行。

于是书写脚本:

脚本注入1(boolean&&get)

 

 第二句os....屏蔽了任何error和warning报错;调试时请勿使用,确定脚本可以跑之后再使用。

  request是python在web方面特别有用的一个库,后面会我要系统的学习它,再记笔记。

  requests.get向指定url发送请求,理论上,这里要通过各种参数使这个包长得几乎和burp里抓到的一样,但这里简化了。

  r.text就是返回的包,是brup里“response”里的内容

讲解一下payload:

  substr(string string,num start,num length) 将所致字符串从start位开始截取length长度。mysql的字符串起始位为1。

  ascii进行ascii码转化。

  % (i,mid) 替换 句中的%d %d,也很常见,记住写法就行了

   payload的作用是从select出的字符串里一位一位截取字符,然后通过布尔盲注,二分法确定出这个字符是啥;

    i控制截取字符在字符串中的位置,mid控制ascii码大小。

 

这种注入,如果手动操作的话,太麻烦了,所以必须掌握写这种简单脚本。

但是,适当的手动注入,找到注入点,构造出可行的注入payload是非常必要的,在很多时候也是难点;找到payload,再写脚本就挺简单了。

payload放脚本里之前一定手动验证正确性,比如说,这里的payload,把第两个%d都改成1,如果没回显,肯定证明他是错的,因为select出的东西第一个字符的ascii码不可能小于等于1。

 

最后是快乐的欣赏内容逐渐被爆出来的时间~

脚本注入1(boolean&&get)

 

上一篇:ASCII码表


下一篇:字符集其实很简单