0x01 初步探测
靶机导入虚拟机后,kali下使用netdiscover找到靶机ip,这里靶机ip为192.168.1.103。nmap扫了下端口,只有80端口跟22端口开着,那就先从80端口访问网站试试看吧。
打开网站后提示 Show me your SQLI skills,应该是让我们sql注入,手动测试了下无果,sqlmap测试也无果,打算再看看。
0x02信息收集
dirb扫了下网站目录,找到了一些能用的地址
phpmhadmin路径
http://192.168.1.103/phpmy
图片上传点 http://192.168.1.103/add #只是一个空壳,没有上传的功能
phpinfo信息 http://192.168.1.103/in
这个页面好像能文件包含
http://192.168.1.103/test
还扫到了一些地址是空白页面,暂时不知道是干嘛的,
http://192.168.1.103/c.php
http://192.168.1.103/show
http://192.168.1.103/panel.php
0x03 文件包含利用
试了很多种方法,最后在 http://192.168.1.103/test 利用 post 可以成功下载文件下来。
最简单的方法就是直接包含/phpmy/config.inc.php(这是phpmyadmin默认的配置文件),直接拿到root密码,登陆ssh,结束战斗。
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'roottoor';
当然文件包含也可以包含一些页面 分析分析源码。
在c.php,成功拿到了数据库连接密码,代码如下:
<?php
#header( 'Z-Powered-By:its chutiyapa xD' );
header('X-Frame-Options: SAMEORIGIN');
header( 'Server:testing only' );
header( 'X-Powered-By:testing only' );
ini_set( 'session.cookie_httponly', 1 );
$conn = mysqli_connect("127.0.0.1","billu","b0x_billu","ica_lab");
// Check connection
if (mysqli_connect_errno())
{
echo "connection failed -> " . mysqli_connect_error();
}
?>
在
panel.php,发现了此页面存在文件包含漏洞,部分代码如下:
if(isset($_POST['continue']))
{
$dir=getcwd();
$choice=str_replace('./','',$_POST['load']);
if($choice==='add')
{
include($dir.'/'.$choice.'.php');
die();
}
if($choice==='show')
{
include($dir.'/'.$choice.'.php');
die();
}
else
{
include($dir.'/'.$_POST['load']);
}
}
0x04 用户登录
利用上面拿到的数据库账号密码,直接登录数据库,拿到了auth表中的账号密码biLLu / hEx_it
然后直接上网站前台登录,进去后看到添加用户上能上传图片。
直接选择新建一个用户,选择上传一张带有一句话木马的图片 a.png,成功上传。根据上面dirb扫出来的一个头像路径地址
http://192.168.1.103/uploaded_images/,根据数据库中图片名称可以看出并没有对上传文件重命名。所以猜测直接拿到了图片真实路径http://192.168.1.103/uploaded_images/a.png,然后可以用上面的文件包含来包含图片一句话,但是只能post,非常麻烦。无法利用辅助工具进行连接。
直接利用文件包含的图片一句话,来写入一个真正的一句话。
发表评论