本来没准备通宵的,在t00ls看了会文章,然后准备睡觉,就在准备睡觉的时候,无意中发现了以前看过的某站(我属于看干劲做事的那种,当时没干劲,没搞下,然后最近干劲十足,在一看发现遍地是漏洞。。。)然后,我的通宵之mysql注入艰难拿shell就此开始......
发现SQL注入漏洞
跑了下二级,然后打开一个个随手测试,因为当时准备睡觉了,所以也就没想过认真搞。。。
加个admin,后台出来,输入admin admin 成功登陆。。。
网站全部是htm后缀,后端是php,环境是Linux+mysql+Apache
后台尝试拿shell无果,就一个kindeditor编辑器上传,别的地方全是统计查询,
后台手工找SQL无果,于是丢wvs,设置登陆状态,然后在手工看了下前台,
发现前台上图中页面,burp抓包手工检测sql,并没有发现,然而习惯性的把包丢sqlmap跑(手工无报错并不代表就不是注入,记得看文章看到某牛说的,一切输入的地方均有危害),结果居然真跑出注入来了,mobile存在注入,好吧,无报错注入,is-dba看了下,是dba权限,这就有搞头了。。
直接os-shell,结果windows版的sqlmap虽然能直接出现shell交互,然而执行无回显,Kali的sqlmap执行os-shell or os-pwn均需要路径,于是花费了大量的时间寻找路径无果,无错注入,各种尝试和其他页面各种寻找均没找到路径。。。
passwords下user,root密码为null,应该是没跑出来,另外跑出几个账号:
[*] activity [1]: password hash: *7A1CACBE8DFDF8C425B7F6477C931D2E0CF481FE [*] stockcrash [1]: password hash: *47063C4B61E623D581B3E6FD24DA59D98FB49248 [*] sumi [1]: password hash: *3AA5D0588A7F30E12F73F485168F8A7F87F83ED3 [*] video [1]: password hash: *4A9F271A0E1D7DDF78C299D9174BC543F06C0423
stockcrash解密成功,其他均失败,然后阿D扫端口(我说阿D端口扫描比nmap好用你们是否会喷我?然而我就是这样的感觉,nmap不一定跑出的端口阿D可以或许是我懒吧,习惯性nmap -Pn 仅此而已)然后roles查看了下,发现允许外链,于是尝试连接,结果连不上,这就纠结了,无法反弹,没绝对路径,后台无法拿shell,思路断了?
发现绝对路径
思路暂时断了,那么就继续看下别的子站吧,连续打开了六七个,发现都是一个程序,有的后台admin可以进入有的不能,我也没兴趣一个个数据库去翻密码了,一万匹草拟马飞过。。。不过幸运的是,发现有的站的后台的菜单不一样,在点开某后台版本详情处时,终于看到了路径。。。。哇塞。。。
然后在这个站尝试之前发现的sql漏洞页面,然而页面不存在。。。。坑爹!
于是乎,构造路径:/data/http/子站名/
尝试,结果os-shell还是不行。。。纳尼????
sql-shell 执行select @@version
发现可以正常执行并且有回显,能执行sql总算让我草泥马的心暂时不奔放了,
有了路径,能执行sql,直接outfile shell吧,本以为我可以马上睡觉了。。。然而故事才刚开始。。。
尝试outfile shell到绝对路径失败,返回null,访问发现页面不存在。。。偶买噶。。。
这时候只想说一句,我拿这绝对路径和dba有何用?
峰回路转之mysql外链
outfile shell失败让我心中一片死灰,刚刚燃起的希望就那么么有了。。。
好吧,咱继续看子站,然而看来看去都是那套程序。。难道有干劲的本屌还是不能fuck掉它吗?
突然想起之前扫的端口,打开阿D看了下:
端口很多,似乎我的希望又回来了!!!
一个个端口的手工检测判断,终于发生奇迹了,让我找到了mysql的端口: 6612 卧槽卧槽卧槽,快点膜拜我。。。。
开头就说了stockcrash解密成功,果断连接上了,然而。。。就一个数据库。。。
看到就一个数据库,心里就悬哒哒滴,感觉应该没权限outfile shell了。。不死心的我还是尝试一番:
建表插表都没问题,在outfile shell的时候就大姨妈了,果然呀。。。
然后就想着去吧其他几个账号给解出来。。。
很多收集的hash在线解密都尝试了,无果。。。想着去t00ls发布悬赏找密码帝解密的,发布帖子的页面都打开了,然而看到那个TB>=10我心中就在滴血....穷淫啊,干嘛要这样喃。。。之前发了个mysql解密的悬赏到现在都没人解出来,账号就10来个tb了,难道最后的10TB也要入坑?心中飞过一句草泥马,直接把页面关了(各位大表哥,小弟穷死了,有么有土豪打赏几个TB呀~)
继续思考继续搞,思路决定出路,不能放弃。。。
load_file大杀器
突然想到,这是mysql,且注入点是DBA,路径也有了,我特么干嘛不load_file读文件呢?fuck,短路了,现在才想起。。。
于是乎,果断尝试load_file('/etc/passwd');
能读取,那么果断读取配置文件,那么多个站都是同一个程序,只要找到配置文件的路径,一个个站的读,我特么不信找不到个别的账号。。。
从index.php一路跟着代码读下去,终于读到了配置文件,看到配置文件就来气。。。为嘛我不早点想到load_file?早想到能省太多弯路和时间了。。。
video用户正是注入点当前用户,DBA权限啊DBA权限,啦啦啦啦
果断outfile shell,
然而我的通宵是注定了,
[Err] 1 - Can't create/write to file '/data/http/xxx/xxx/plugin/6.php' (Errcode: 13)
错误13,目录mysql没权限写入,继续找别的目录尝试,然而找了半天都是13,最后无奈,想到后台有图片上传,我导到图片目录该可以了吧?
就在我边松气边访问地址的时候。。。
不存在?what?你特么在逗我?
果断load_file下,发现是存在的,写入成功了的,那为嘛提示这个?
这时候想到了在找配置文件的时候读到的某个文件的代码:
仔细看了下代码,也没发现个所以然。。。
难道是因为图片目录,没有解析权限?好嘛,换目录,然后各种寻找目录,
全部错误13。。。在看看wvs里面找目录,结果也全部不行,
能成功的目录没找到,不过倒是让我看到了这个,当时那个心情。。。我花了那么久时间找路径。。。哎,不想多说了。。。从来没看到有人在mysql爆路径和php爆路径上提到过Fatal error
的方法。。。
既然找不到,那么继续回到图片目录把。。。
奇葩的解析拿下shell
尝试各种后缀,也尝试了Apache的解析漏洞。。。。
txt、htm、php、php5、这些都不行,不过doc和jpg却没有提示不存在。。。
突然尝试到rar的时候,让我眼前一亮!!!
rar不是应该下载吗?
304状态,这是为什么呢?不解,不过好不容易没显示不存在了,我就不能放过rar!!
尝试1.php;.rar
1.php.rar.xxxx
等很多能想到的方式,最后:1.php.rar
特么的居然神奇的解析了,Apache有这个解析漏洞?
至此终于成功拿下shell。。。。俺没啥文采,文章写不出多生动,我只是想说,当我拿下shell的时候,已经快中午了。。。。其实很多时间都是白花的,本不应该浪费那么久时间,然,渗透就是这样,思路很重要,你若想到,分分钟的事,你若想不到,或许就不是一天两天一月两月的事了。
结尾疑问
虽然折腾了一个通宵才拿下,不过还是为搞下而高兴,靠自己而成功的喜悦你们都懂的,另说下,图中显示股票啥的,这并不是单子,我也不是搞黑产,请勿瞎BB,我算是怕了那些对黑产莫名其妙敏感的大佬了。
结尾疑问1:我这种情况,有办法覆盖文件吗?当时超级想把那个判断文件给覆盖掉,干死丫的。。。(假设,我这个环境,加目录可写的情况)
结尾疑问2:为何在sqlmap的sql-shell中outfile shell失败?返回null
结尾疑问3:Apache存在1.php.rar这类文件名解析?
结尾疑问4:我这种情况,除了本文提到的方法思路以为,针对mysql注入拿shell,大佬们是否还有别的奇淫意技?求交流,求指点~
PS:若文中有写的不对或者做的不对的地方,欢迎改进,弱爆了,一直在努力。
本文作者为Mr.Wu,转载请注明,尊守博主劳动成果!
由于经常折腾代码,可能会导致个别文章内容显示错位或者别的 BUG 影响阅读; 如发现请在该文章下留言告知于我,thank you !