网站代码审计服务应该怎么做?

         最近有小伙伴想让我聊一聊这个代码审计应该怎么搞才能搞好,那咱们这一期再聊一聊这个代码审计,咱主要是分三块来讲,第一块就是准备工作,第二块就是在这个审计过程中找漏洞的这么一个过程。第三块就是说去验证这个漏洞,验证思路。那咱先来讲第一块,这个准备工作其实主要就是分两部分,第一部分就是我要着重讲一下,就是要有一个良好的经历,在你经历比较充分的时候去做这个代码审计的工作,因为它跟XSS,sql注入这些不一样,比如说xxs盲打,它有一个漏洞的话,它就会立刻给你一个回馈,比如说立刻有一个弹窗,你立刻就知道这个地方有漏洞,但是代码审计是不一样的,它需要你一行一行的去读这个代码,然后找到漏洞之后还需要去捋顺这个漏洞这个代码的逻辑,然后去进行检验,所以他的反馈并不会那么及时,所以如果你的精力不那么充沛的话,比如说你熬夜去做这个代码审计,有时候效率会很低下,甚至会忽略掉一些这个可能有漏洞的地方,所以精力充沛是很重要的一个事儿。

第二块是什么,就是说要有一些辅助工具,找到一些比较趁手的辅助工具,比如说这个国产的这个SINESAFE-SJ这么一个代码审计的辅助工具,这个很好用,在这个圈内也很知名。然后准备工作做完之后,就是进入到了这个审计的这个找漏洞的阶段。

刚开始我建议大家先找一些小的CMS去读它的代码,因为小的CMS它架构相对简单,然后可能出现安全问题,相对来说也更多一些。然后读小CMS是一方面,另一方面你还可以做一个什么工作,就是尤其是对于一些初学代码审计的人,你可以先去找一些别人的代码审计报告,去跟着那个报告一步一步的去复现去操作,一定要动手操作,不要观看,要跟着那个报告一步一步的走。

除了这两块,接着就是要熟悉一些经常会出现漏洞的函数,而且你手头要有一个函数查询的这么一个手册,比如说PHP语言的手册,电子版的也行,然后纸质版的也行,要熟悉比较容易出现漏洞的一些函数,一些参数一些功能,包括是一些变量,比如说这些就是容易出现代码执行的一些变量或者函数。

还有一种思路是什么,你可以用SQL语句去做这个去查找漏洞,比如说你在整个代码里头搜索哪一个地方出现了这个SQL语句,比如说出现了这些语句,那么你找到那个出现SQL语句的地方,你看它是什么样的一个功能,比如说它是一个查询的功能,那它就很有可能出现一个SQL注入的漏洞,而且你找到代码出现搜索语句之后,你要去看一看它是否有合适的一个过滤。过滤掉注入,如果没有它就很有可能会有随后注入的漏洞了。

当然了,就是如果你能把一些语言就是学的比较通比较好,那肯定对于代码审计来说会有很大的帮助,比如说你把PHP语言学通了,你去审计PHP的这个源码的时候,你就可以找到一些逻辑上的漏洞,就是或者说更深的一些漏洞,比如说很多漏洞,它可能是有好几个函数组合到一块,然后来形成的,那么你就需要把这个语言给弄通,你才能找到这种或者是说一些比较复杂的逻辑漏洞。

最后就是验证漏洞的这个部分,验证漏洞你肯定是要说你现在找到了一个SQL注入的这么一个漏洞,在代码审计的过程中,那么你就需要去用一些工具去验证它,比如说你可以用SQL map去在黑盒的这么一个情况下,搭建一个这套源码的测试环境,然后去实施注入,以此来验证你从代码审计这一块找到这个漏洞是否跟你的思路一致,验证你的思路,大概就是这么三个部分。

分享: