跨库查询及应用思路 #在浏览器获取所有数据库名 #获取指定某个数据库名下的表名信息 #获取指定某个库名下的表名下的列名信息 #获取指定某个数据库下的admin 数据
文件读写操作
load_file():读取函数
select load_file('D:/phpstudy/PHPTutorial/WWW/SqliLabs/sql-connections/db-creds.inc');
#在查询文件时,需要获取文件路径,常见方法:
1.报错显示
2.遗留文件---PHPinfo.php
3.漏洞报错
4.平台配置文件(不实用)
5.爆破等---一般网站的默认路径
#写入文件----文件上传,
http://127.0.0.1/SqliLabs/Less-2/?id=-1 union select 1,'x',3 into outfile 'D:/phpstudy/PHPTutorial/WWW/SqliLabs/x.php'--+
其中x可以为php一句话木马留后门(用菜刀即可方便提权)
备注:\容易被转义,用/或者\ \表示路径更好
问题: 1.魔术引号 在一个项目中,魔术引号若是打开的话,所有的反斜线(),单引号('),双引号("),NULL字符都会被加上一个反斜线进行转义
2.is_int函数 整数过滤代码
3.addslashes()函数
4.过滤关键字比如将select变成某个单词
5.waf防护软件 绕过方法:
-
更改提交方法
-
大小写混合
-
解密编码类
-
注释符号混用
-
等价函数替换
-
特殊符号混用
-
借助数据库特性
-
HTTP参数污染
-
垃圾数据溢出---waf只能匹配一千个,多了就不行了
低版本注入配合读取或暴力
1.SQLmap工具--字典 2.读取源代码的数据库查询语句 3.暴力拆解