前言
打算把自己打过的靶的记录更新到博客中,主要更新一些常见的渗透思路和有意义的靶机(那些专门为打靶而设计还考考CTF的啥的就没必要看了)一是为了方便师傅跟着我打靶的顺序来直接打,二就是记录一下自己打靶的经历吧
信息收集
192.168.223.137
端口扫描
1
| nmap -sV 192.168.223.137 -sC -p 22,80,25,110
|
查看80端口
明显注入吧 ,抓个包丢sqlmap中跑但是发现跑不出什么?仔细看一下
先扫了一下目录
有个文件上传
有个phpinfo
有个phpmyadmin
有个test
文件包含
emm比较多 先看文件上传吧看能不能直接getshell
确实能任意文件上传,但是不知道返回的路径啊 ?奇怪了,再试试弱口令进一下phpmyadmin也无果
但是在尝试test的时候发现存在了一个文件包含
emm 尝试包含当前目录的一些文件比如index.php upload.php
访问后确实找到了源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| <?php session_start();
include('c.php'); include('head.php'); if(@$_SESSION['logged']!=true) { $_SESSION['logged']='';
}
if($_SESSION['logged']==true && $_SESSION['admin']!='') {
echo "you are logged in :)"; header('Location: panel.php', true, 302); } else { echo '<div align=center style="margin:30px 0px 0px 0px;"> <font size=8 face="comic sans ms">--<span style="font-weight: bold;" class="mark">[[ billu b0x ]]</span>--</font> <br><br> Show me your SQLI skills <br> <form method=post> Username :- <Input type=text name=un>   Password:- <input type=password name=ps> <br><br> <input type=submit name=login value="let\'s login">'; } 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); if (mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result); echo "You are allowed<br>"; $_SESSION['logged']=true; $_SESSION['admin']=$row['username']; header('Location: panel.php', true, 302); } else { echo "<script>alert('Try again');</script>"; }
} echo "<font size=5 face=\"comic sans ms\" style=\"left: 0;bottom: 0; position: absolute;margin: 0px 0px 5px;\">B0X Powered By <font color=#ff9933>Pirates</font> ";
?>
|
很明显是一个将单引号替换为空的操作但是这里的写法是pass在前面uname在后面,所以可以构造payload通过
反引号转义单引号和万能密码即可成功登录
payload是
un=or 1=1 #&ps=asd\
这里发现存在上传
但猜测这里是include了我刚才扫到的add.php
那其实很容易想到如果我在这上传图片马然后用上面的test去包含一下不就getshell了吗?
但是包含不解析啊
看wp发现在另一个php文件当中存在文件包含(人麻了咋这么乱这个靶场那就是这个phpmyadmin跟什么)
在这里进行文件包含
Getshell
然后生成了msf的反弹php的马,然后上传图片马然后在这里进行远程文件包含成功上马子(喵的 一定要用kali里头的反弹php马才行 msf的会断的 真服了)
先升级一下shell
1
| python -c "import pty;pty.spawn('/bin/bash');"
|
提权
查看内核
找exp
1
| searchsploit linux 3.13.0
|
查看靶机是否存在gcc
发现存在那么通过上传c文件进行gcc编译后提权
1 2 3
| /usr/share/exploitdb/exploits/linux/local/37292.c gcc exp.c -o exp ./exp
|
打靶结束
总结
目录扫描是突破口,然后文件包含读源码审计sql进后台上传再包含反弹php马上shell后内核提权,比较简单,但是靶场做的真的乱