1、二次注入漏洞
解释:该漏洞的出现是由于代码的问题
注入一般分两步
第一步:构造注入语句,并插入
第二步:利用插入的SQL语句,进行显示或者替代原有数据等操作
注:观察页面是否存在回显数据的语句,没有的话,则不能使用回显注入,可使用盲注
2、加解密漏洞
解释:注入的时候,需要对SQL语句进行相应的加密,该加密方式可以根据原有的参数进行判断
- 举例:
3、DNSlog注入漏洞
解释:当进行盲注也不能回显数据时,可以使用DNSlog注入。
解决了盲注不能回显数据,效率低的问题
- 通过http://dnslog.cn/ 这个网站记录下我们的DNS请求,在该网站获取一个域名a.com
- 通过load_file()函数,在目标网站进行发送DNS请求(因为域名的所有子域名都可以进行解析,eg:a.a.com)
- 利用select语句,把表名、列名的信息回显在http://dnslog.cn/网站,子域名就是我们所需要的
注意:因为需要使用 load_file() 函数,所以需要root权限,并且 secure_file_priv= 需要为空(即有读写权限的文件目录,除非自己知道文件目录)。并且服务器要为Windows操作系统。
演示:获取当前数据库名
4、中转注入
注释:在一些注入过程中网站URL注入点是经过编码的,此时就不可以利用sqlmap进行漏洞利用了,因此可以自己编写php脚本编码文件,就可以结合sqlmap工具进行测试。
举例:
<?php
$url='http://xxxx/job_bystjb/yjs_byszjs.asp?id=';
$payload=base64_encode($_GET['x']);
$urls=$url.$payload;
file_get_contents($urls);
?>
结合sqlmap使用该脚本
参考资料
https://blog.csdn.net/weixin_40412037/article/details/110088186
参考资料
https://blog.csdn.net/monster663/article/details/113757235