PHP代码审计中你不知道的牛叉技术点
一、前言
??? php代碼審計(jì)如字面意思,對(duì)php源代碼進(jìn)行審查,理解代碼的邏輯,發(fā)現(xiàn)其中的安全漏洞。如審計(jì)代碼中是否存在sql注入,則檢查代碼中sql語(yǔ)句到數(shù)據(jù)庫(kù)的傳輸 和調(diào)用過程。
入門php代碼審計(jì)實(shí)際并無(wú)什么門檻要求,只需要理解基礎(chǔ)的php語(yǔ)法規(guī)則,以及理解各種類型漏洞的出現(xiàn)原因則可以開始嘗試審計(jì)php源代碼。通常的漏洞演示中sql語(yǔ)句會(huì)直接傳入php自帶的函數(shù)傳入數(shù)據(jù)庫(kù)執(zhí)行,但在實(shí)際的軟件項(xiàng)目中,通常以面向?qū)ο蟮乃枷脒M(jìn)行編程,則會(huì)涉及各種形式的封裝,調(diào)用,以及不同風(fēng)格的框架,在這個(gè)條件下,只需要保持耐心跟蹤其調(diào)用過程即可。
另外關(guān)于代碼審計(jì)的思路而言,一種是通讀代碼逐行分析邏輯,另外一種是通過正則快速定位一些問題函數(shù),再反向定位調(diào)用過程。這兩種方式也對(duì)應(yīng)代碼審計(jì)的工具主流的實(shí)現(xiàn)思路,一種是通過語(yǔ)法分析的過程發(fā)現(xiàn)漏洞,另一者是定位問題函數(shù)實(shí)現(xiàn)。
不管什么方式,重點(diǎn)還是實(shí)戰(zhàn)閱讀代碼,累積經(jīng)驗(yàn)。
以上為個(gè)人觀點(diǎn),謹(jǐn)慎吸收。
二、基礎(chǔ)知識(shí)要求
PHP語(yǔ)法
主流漏洞原理
三、入門閱讀 & 參考
《代碼審計(jì)入門總結(jié)》:http://bbs.ichunqiu.com/thread-8954-1-1.html?from=oschina
《php手冊(cè)》:http://php.net/manual/zh/
《代碼審計(jì):企業(yè)級(jí)Web代碼安全架構(gòu)》:https://read.douban.com/ebook/16642056/
四、審計(jì)實(shí)戰(zhàn)
基礎(chǔ)系列
?????? 基礎(chǔ)系列中的4篇文章基本是通過一些直觀的小案例來(lái)讓人理解從用戶的交互到代碼的執(zhí)行這個(gè)過程中漏洞是以什么形式存在的,又是如何被利用的,初學(xué)者閱讀這幾篇文章可以讓人更加快速的理解代碼審計(jì)的過程,以及基本的審計(jì)思路。
常見WEB漏洞原理分析及利用方式——SQL注入篇 :
http://bbs.ichunqiu.com/thread-12694-1-1.html?from=oschina
常見WEB漏洞代碼層原理分析及利用方式——文件操作漏洞篇 :
http://bbs.ichunqiu.com/thread-13008-1-1.html?from=oschina
常見WEB漏洞代碼層原理分析及利用方式之Php代碼執(zhí)行篇 :
bbs.ichunqiu.com/thread-13465-1-1.html?from=oschina
常見WEB漏洞代碼層原理分析及利用方式——文件操作 :
http://bbs.ichunqiu.com/thread-13408-1-1.html?from=oschina
高級(jí)系列
????高級(jí)系列的幾篇其實(shí)就代碼審計(jì)的整個(gè)大的領(lǐng)域來(lái)說(shuō)并不算高級(jí),但是都有其特色,并且大部分是從真實(shí)的軟件項(xiàng)目開始講解,可以讓初學(xué)者理解實(shí)戰(zhàn)中可能會(huì)遇到的一些問題,以及實(shí)戰(zhàn)中的思考過程。
代碼審計(jì)之繞過后臺(tái)權(quán)限限制,繼續(xù)sql注入:
http://bbs.ichunqiu.com/thread-10102-1-1.html?from=oschina
代碼審計(jì)之突破路徑限制刪除文件:
bbs.ichunqiu.com/thread-8979-1-1.html?from=oschina
代碼審計(jì)之任意用戶密碼找回漏洞:
http://bbs.ichunqiu.com/thread-10497-1-1.html?from=oschina
代碼審計(jì)之偽全局機(jī)制使用不當(dāng)導(dǎo)致的致命后果:
http://bbs.ichunqiu.com/thread-11390-1-1.html?from=oschina
代碼審計(jì)之繞過addslashes總結(jié):
http://bbs.ichunqiu.com/thread-10899-1-1.html?from=oschina
????mel 和 bees系列都是指定了對(duì)某個(gè)實(shí)際軟件項(xiàng)目的審計(jì),初學(xué)者可以跟隨作者的腳步進(jìn)行挖掘,聯(lián)系,其他的類型則是一些雜亂的文章。
Melcms分析集合
代碼審計(jì)就該這么來(lái) Mlecms Getshell:
http://bbs.ichunqiu.com/thread-13703-1-1.html?from=oschina
代碼審計(jì)就該這么來(lái)2 Mlecms 注入:
http://bbs.ichunqiu.com/thread-13714-1-1.html?from=oschina
{代碼審計(jì)思路} (通讀+審計(jì)) Mlecms(中危漏洞/不簡(jiǎn)單):
http://bbs.ichunqiu.com/thread-11510-1-1.html?from=oschina
beescms分析集合
【代碼審計(jì)初探】beescms v4.0_R SQL:
http://bbs.ichunqiu.com/thread-12635-1-1.html?from=oschina
對(duì)Beescms SQL注入漏洞的進(jìn)一步思考:
http://bbs.ichunqiu.com/thread-13606-1-1.html?from=oschina
代碼審計(jì)就該這么來(lái)3 beescms getshell:
http://bbs.ichunqiu.com/thread-13977-1-1.html?from=oschina
Beecms任意文件刪除:
http://bbs.ichunqiu.com/thread-14540-1-1.html?from=oschina
其他
PHP代碼審計(jì):Null 字符問題:
http://bbs.ichunqiu.com/thread-4349-1-1.html?from=oschina
一個(gè)CMS案例實(shí)戰(zhàn)講解PHP代碼審計(jì)入門:
http://bbs.ichunqiu.com/thread-16775-1-1.html?from=oschina
PHP代碼審計(jì)儲(chǔ)存XSS形成防御加利用篇:
http://bbs.ichunqiu.com/thread-10532-1-1.html?from=oschina
ZZCMS的代碼審計(jì):
http://bbs.ichunqiu.com/thread-14684-1-1.html?from=oschina
另外要提的一點(diǎn)是,不同語(yǔ)言編寫的web應(yīng)用其實(shí)都有相似性,當(dāng)你熟練了解一門語(yǔ)言的代碼審計(jì)過程后其實(shí)便可以進(jìn)一步擴(kuò)展到別的語(yǔ)言。你會(huì)發(fā)現(xiàn)基本原理是相似的,當(dāng)然不同還是存在的,比如其中的addslashes和null的文章便是如此,它是php這門語(yǔ)言獨(dú)有的問題,其他還有的一些差異在這里不細(xì)說(shuō)明。
五、i春秋課程推薦
PHP代碼審計(jì)實(shí)戰(zhàn):
http://www.ichunqiu.com/course/54473?from=oschina
六、代碼審計(jì)工具推薦
RIPS
它能檢查出XSS ,sql注入,敏感信息泄漏,文件包含等常見漏洞;能夠采用正則方式掃描代碼發(fā)現(xiàn)漏洞;也可以采用自定義的語(yǔ)法掃描代碼發(fā)現(xiàn)問題。
下載鏈接:http://rips-scanner.sourceforge.net/
參考文章
工具推薦:三款自動(dòng)化代碼審計(jì)工具:http://bbs.ichunqiu.com/thread-16776-1-1.html?from=oschina
七、關(guān)聯(lián)閱讀
Mybatis框架下SQL注入漏洞面面觀:
http://bbs.ichunqiu.com/thread-12574-1-1.html?from=oschina
如何用grep對(duì)PHP進(jìn)行代碼審計(jì):
http://bbs.ichunqiu.com/thread-16779-1-1.html?from=oschina
python 安全編碼&代碼審計(jì):
http://bbs.ichunqiu.com/thread-16770-1-1.html?from=oschina
結(jié)語(yǔ)
本帖旨在幫助大家更好更系統(tǒng)的學(xué)習(xí)代碼審計(jì),大家有任何建議望不吝賜教,
下期技術(shù)專題調(diào)研:
我們將在這兩天確定下周的技術(shù)專題,大家有想學(xué)習(xí)的指定的技術(shù)可以留言申請(qǐng),我們會(huì)根據(jù)需求來(lái)調(diào)整策劃專題,感謝大家支持啦!
總結(jié)
以上是生活随笔為你收集整理的PHP代码审计中你不知道的牛叉技术点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 代码执行-preg_replace
- 下一篇: php发送post请求方法