新聞中心
在前面的內(nèi)容中,我們使用TEW-654TR路由器的tftp服務(wù)實(shí)現(xiàn)了獲取目標(biāo)的管理權(quán)限。但是要是tftp沒有開放到外網(wǎng)怎么辦?另尋他徑:在這一篇中會(huì)我們來分析一個(gè)web應(yīng)用上的漏洞。

創(chuàng)新互聯(lián)公司是專業(yè)的寧城網(wǎng)站建設(shè)公司,寧城接單;提供成都網(wǎng)站建設(shè)、做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行寧城網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
初步分析
使用代理軟件抓登錄時(shí)候的數(shù)據(jù)包,可以看到發(fā)送的http請(qǐng)求如上圖所示。數(shù)據(jù)發(fā)送給了my_cgi.cgi這個(gè)腳本。我們分析一下這個(gè)文件看看。
rootfs git:(master) find . -name my_cgi.cgi ./usr/bin/my_cgi.cgi rootfs git:(master) file ./usr/bin/my_cgi.cgi ./usr/bin/my_cgi.cgi: ELF 32-bit LSB executable, MIPS, MIPS-II version 1 (SYSV), dynamically linked (uses shared libs), stripped
通過抓包知道用戶在登錄頁(yè)面輸入的兩個(gè)參數(shù)分別是’user_name’和’user_pwd’,那么我們?cè)贑GI腳本中搜索這兩個(gè)字符串看看。
有幾行字符串看起來是SQL查詢的語(yǔ)句,尤其是:
select level from user where user_name='%s' and user_pwd='%s'
看起來應(yīng)該是根據(jù)用戶名和密碼去數(shù)據(jù)庫(kù)查詢,看密碼是否正確。上一篇文章的分析我們可以知道,這個(gè)路由器是使用SQLite做數(shù)據(jù)庫(kù)存儲(chǔ)密碼的。
使用IDA載入my_cgi.cgi。查詢”select level from user where user_name“字符串,可以定位到do_login函數(shù)。
假設(shè)&猜想
用戶提交的用戶名和密碼大概是傳遞給sprintf函數(shù)生成SQL語(yǔ)句。存儲(chǔ)在sql變量中,***進(jìn)入exec_sql函數(shù)??雌饋磉@個(gè)過程沒有對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)義。除非數(shù)據(jù)在進(jìn)入do_login函數(shù)之前或者在exec_sql中有做轉(zhuǎn)義,不然很可能存在SQL注入的漏洞。如果我們的假設(shè)是正確的,數(shù)據(jù)沒有經(jīng)過處理進(jìn)入了SQL語(yǔ)句中,那么我們可以使用最傳統(tǒng)的***密碼來繞過登錄驗(yàn)證:
' or '1'='1
***執(zhí)行的sql就會(huì)變成
select level from user where user_name='admin' and user_pwd='' or '1'='1'
這樣查詢語(yǔ)句就會(huì)返回成功的結(jié)果。
驗(yàn)證猜想
我們實(shí)驗(yàn)一下:
果然跟我們預(yù)期的一樣。這里需要注意的是能夠以管理員身份登陸是需要一定運(yùn)氣的。我們構(gòu)造的SQL語(yǔ)句where條件是or 1=1所以會(huì)返回所有的數(shù)據(jù)。恰好管理員的記錄是***條所以以管理員的身份登陸了。如果***條是一個(gè)普通用戶的數(shù)據(jù),那么就會(huì)以普通用戶的身份登陸了。為了確保一定以管理員身份登陸,可以構(gòu)造如下語(yǔ)句:
' or level = (select level from user order by level desc limit 1)/*
上面這個(gè)語(yǔ)句可以確保***查詢出來的數(shù)據(jù)室level***的用戶的數(shù)據(jù)。
這次我們終于看到了逆向分析的冰山一角。下一篇將會(huì)討論使用Qemu虛擬機(jī)運(yùn)行路由器固件,動(dòng)態(tài)調(diào)試相關(guān)的內(nèi)容。
當(dāng)前題目:逆向路由器固件之SQL注入:web應(yīng)用上的漏洞
文章鏈接:http://m.5511xx.com/article/dhdppoc.html


咨詢
建站咨詢
