perl脚本GET系统命令执行
生活随笔
收集整理的這篇文章主要介紹了
perl脚本GET系统命令执行
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目來自 [HITCON 2017]SSRFme
代碼的思路很簡單,就是會先建一個文件夾sandbox/md5(orange+ip),然后將url的值寫到filename文件中
$data = shell_exec("GET " . escapeshellarg($_GET["url"])); 這行代碼開始以為就是GET請求,所以想到了file協議去讀文件,但這種做法是錯誤的簡單記錄一下perl腳本GET系統命令執行的學習
簡單來看看使用GET如何來執行系統命令。具體為啥原因我也說不上來,大概就是open函數支持file協議
perl里的GET函數底層就是調用了open處理
要執行的命令首先必須要有該文件存在,以命令為文件名的文件存在
ubuntu18.04 已經修復此漏洞
修復的方式是在下面第三行代碼中,open中間加了個參數’<’
暫且刪掉這個 <不管他
利用file:bash -c "cmd string"來讀文件
?url=/&filename=aaa
之前提到要 open函數 執行命令首先就是必須存在這個文件,那么我們首先就是要創建一個以命令命名的文件,然后再去執行
然后就是 | ,這個應該是個分界符的意思,因為他放在前面也是可以的,比如| /readflag
也不是很清楚,就簡單記錄一下,詳細的可以看看這個大佬寫的
-------------------perl腳本GET執行系統命令---------------------
總結
以上是生活随笔為你收集整理的perl脚本GET系统命令执行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [html] 举例说明原生的html组
- 下一篇: 那些适用于跨境电商的ERP系统