注入岛国网站,第一次....
作者:panda
原文地址:https://forum.90sec.com/t/topic/1316
1.打开了谷歌hack 数据库
2.在谷歌中漫步,看到几个?id=XXX结尾的网址,加’ 出现报错,也有好几个注入点,是打开后就可以看到mysql的报错信息。 其中有一个越南的公益网站,应该是停止维护了,但还是给管理员发送了提醒注入漏洞的邮件。最后选了一个岛国信息网站,开始愉快的一天。
3.直接丢给了sqlmap自动注入,与此同时使用
Nikto 和nmap 进行信息搜集,因为是新手,全是--help看的基础命令 Nikto -h 127.127.127.127
Nmap -v -A 127.0.0.1
用sqlmp -u “http://url” --os-shell ,却发现找到了根目录但是没法上传文件,最后确认是mysql没有写入当前目录的权限。 Sql一直在提示上传失败 [WARNING] it looks like the file has not been written (usually occurs if the DBMS process user has no write privileges in the destination path) sqlmp -u “http://url” --sql-shell发现是可以用sql-shell。 使用select into语句写文件和update语句
于是通过 select @@datadir 和select @@basedir 获得了mysql安装的目录和数据目录分别为/usr 和/var/lib/mysql,搜索公众号互联网架构师回复“2T”,送你一份惊喜礼包。
4.尝试下载apache配置文件和mysql配置文件。
尝试下载Apache 2.2.2的默认配置文件(这个全靠运气了感觉) 不断的尝试 Sqlmap -u “url” --file-read=”文件路径” 得到apache和mysql的文件内容(关键)
5.sql注入获取webshell的关键在我看来就是,能找到可以写入文件的目录且有可以执行的方式。
所以在不断切换apache的目录后,终于找到了,可以用目前sql注入点,写入文件,并且访问的目录。 通过不断尝试,sqlmap 手动设置目标目录和上传文件,终于找到了有权限的目录。 上传失败的截图:
成功的截图:搜索公众号互联网架构师回复“2T”,送你一份惊喜礼包。
6.中途在上传失败的时候尝试进行源码分析,发现了mysql的数据库密码,但是无法远程连接。
7.也尝试了对10000端口的web服务的密码爆破,使用了burpsuite. 密码字典只是用了sqlmap -u ‘url’ --users 获取的用户名+mysql的配置文件里面的敏感信息。 关注公众号:互联网架构师,回复:2T,领取资料 。 但实际上,只跑了三次,就出现了拦截。
8.查看代码的时候发现了一个执行漏洞,也进行了尝试,但sqlmap-shell没法执行update语句,这点我也很疑惑。 从这个代码上来看,一定是有办法把linux的find命令截断,然后执行任意代码的。只需要构造好folder的值。
但是在sqlmap的sqlshell中没法执行upate命令,无法修改这个字段的值。 这点我也很困惑,同样困惑的是,既然我有了sqlshell的root命令权限,为啥还要获取mysql的root密码,甚至还得查md5,我自己insert一个不行吗? 前辈们的教程都是这样的,盲人摸象。希望能有机会获得注册码进一步学习。
9.后续提权的思路
vsftp 2.2.2,直接在metasploit中search svftp,并没有尝试,作为一个靶机训练,有webshell就可以止步,系统漏洞,这种感觉比较老的系统,也有不少吧。
总结:
比较low的一个sql注入点,但是sqlmap无法获取准确的上传路径和执行路径,好在有sqlmap --file-read 所有文件的权限, 所以根据apach 2.2.2 centos的常用配置和sql-shell获取的安装目录,猜解apache和mysql的配置文件地址,apache的配置文件里面的敏感信息还是比较多的。
全栈架构社区交流群
「全栈架构社区」建立了读者架构师交流群,大家可以添加小编微信进行加群。欢迎有想法、乐于分享的朋友们一起交流学习。
扫描添加好友邀你进架构师群,加我时注明【姓名+公司+职位】
全栈架构社区交流群
「全栈架构社区」建立了读者架构师交流群,大家可以添加小编微信进行加群。欢迎有想法、乐于分享的朋友们一起交流学习。
看完本文有收获?请转发分享给更多人
往期资源:
评论