bugku 流量分析之信息提取

题目给出提示,使用了sqlmap

sql注入,然后搜索下http

查出来,简单分析下,这是一个sql盲注

http中响应全部都是200,也就是说,我们不能通过响应状态来判断,

sqlmap先通过注入判断出表及字段,然后再通过盲注判断flag的每一个字符的ascii码。

前面那些判断表等都不管,只管后面盲注出的数据

先这样过滤出求数据第一个字符的   %2C1%2C1%29%29%3E   即,1,1))>

原来 是1 AND ORD(MID((SELECT IFNULL(CAST(`value` AS CHAR),0x20) FROM isg.flags ORDER BY `value` LIMIT 0,1),1,1))>64 ,为了简便,我就取了后面一点

通过上面7个包可以大概分析出,这个可以通过Length或者File Data的长度来判断回显是1还是0

Length在430左右的回显是0,而在467左右的回显为1,根据这样来判断,很快知道第一个字符的ascii码为73 即  ‘I’

可以简便一点,把回显为0的包去掉,然后在剩余的包中找出%3E后面数字最大的加1即可,

要去掉回显为0的包,我找了蛮久,但只有个http.content_length >= 130,这个130我是对比分析回显0和1两种包的File Data长度来取的,回显为0的File Data长度大概在120上下,回显为1的File Data长度大概在160上下,我就取个中间的值。

多了一个不一样的,把contains内容再改下

之后就是对比然后再更换数字去获取所有字符了,但是好麻烦!我弄到第10个字符就放弃了,想想如何用python搞定,偷懒下

 

先导出,这样过滤除了第一个不是外,其他都是回显为1的响应包,所以把第一个右击忽略

然后文件->导出分组解析结果->为纯文本

 

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import re

#信息提取

#用正则把包含字符位置以及判断的ascii码找出来,写入txt
f = open('q.txt','r+')
fa = open('sqlmap.txt','w+')
regex = re.compile('C[\w]+%2C1%29%29%3E(.+?)]')
line = f.readline();
while line:
    # print datapat.findall(line)
    m = regex.search(line)
    if m:
        fa.writelines(m.group(0)+'\n')
        print m.group(0)
    line = f.readline()
f.close()
fa.close()



 

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import re


#找出每个字符所判断的最大ascii,并使其加1操作
flag = ''
f = open('sqlmap.txt','r+')
line = f.readline()
for i in range(1,34):
    regex = re.compile(str(i)+'%2C1%29%29%3E(.+?)]')
    tmp = 0
    while line:
        m = regex.findall(line)
        if m:
            print m
            if int(m[0]) >= tmp:
                tmp = int(m[0])+1
            line = f.readline()
        else:
            break
    flag = flag + chr(tmp)
print flag

 

这个我没写清楚,不晓得能不能容易理解。

例如第一个字符,他分别判断了ascii码以及回显如下:

ascii回显
641
960
800
721
760
740
730

 

第一个包判断字符ascii码大于64,第四个包说明大于72,但在最后一个包却小于等于73,说明为73,之后我就把无回显包去掉,再在有回显的包里取出ascii最大的一个进行加一操作就得出他的ascii码。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值