1. 程式人生 > 其它 >簡單瞭解WEB漏洞-RCE程式碼及命令執行漏洞

簡單瞭解WEB漏洞-RCE程式碼及命令執行漏洞

​ 在Web應用中有時候程式設計師為了考慮靈活性、簡潔性,會在程式碼呼叫程式碼或命令執行函式去處理。比如當應用在呼叫一些能將字串轉化成程式碼的函式時,沒有考慮使用者是否能控制這個字串將造成程式碼執行漏洞。同樣呼叫系統命令處理,將造成命令執行漏洞

舉例

程式碼執行

<?php
$code = $_GET['x'];
eval($code);
?>

訪問該檔案向x傳遞phpinfo();引數

http://127.0.0.1/test.php?x=phpinfo();

成功執行程式碼

命令執行

<?php
$code = $_GET['x'];
system($code);
?>

訪問該檔案向x傳遞ipconfig引數

原理

漏洞形成條件:

可控變數:變數可以傳遞引數

漏洞函式:eval就是程式碼執行 system就是系統命令執行 echo就是輸出可以使用xss

web原始碼:網站應用決定網站漏洞方向

檢測

白盒:程式碼審計

黑盒:漏掃工具 公開漏洞 手工看引數值及功能點判定

靶場案例

靶場一

https://www.mozhe.cn/bug/detail/RWpnQUllbmNaQUVndTFDWGxaL0JjUT09bW96aGUmozhe

先輸入一個ip

可以看到執行了ping命令

所以判斷他應該是執行了類似system類命令

接下來判斷是linux還是window

隨便抓個包試下

可以看出這是一個linux

使用linux的拼接命令執行

127.0.0.1|ls

檢視頁面原始碼

發現是前端js限制

直接使用burp抓包修改

接下來檢視key.php檔案

靶場二

https://www.mozhe.cn/bug/detail/T0YyUmZRa1paTkJNQ0JmVWt3Sm13dz09bW96aGUmozhe

把程式碼跑一跑看下

<?php
echo gzinflate(base64_decode('40pNzshXSFCJD3INDHUNDolOjE2wtlawt+MCAA=='));
?> 

也就原始碼為

eval(echo`$_REQUEST[a]`;;?>) #echo+反引號可以執行linux的shell命令 執行的命令就是反引號中的內容

a接收資料

http://219.153.49.228:42010/f.php?a=ls

讀取key

http://219.153.49.228:42010/f.php?a=tac key_46331475425346.php

靶場三

webmin登入介面

webmin存在遠端命令執行漏洞

webmin 遠端命令執行漏洞(CVE-2019-15107)

隨便輸入賬號密碼抓包

題目說明key在根目錄下

old用來接收命令直接看下根目錄

找到key檢視檔案

完事