小白的代码审计之路

访客5年前黑客资讯627

 此文由猪八戒SRC,代码审计小鲜肉“呆呆的骗子大婶”倾情贡献~欢迎勾搭!


一、 代码 审计指令注入

PHP自带的函数中供给了几个能够履行体系指令的函数,在web项目的开发中一般是不会用到的,但有些程序员为了更简练的操作,运用了这些函数就会导致一些安全问题的发作。 
system、exec、passthru、shell_exec、popen、proc_open、pcntl_exec。下面将别离进行介绍:

string system(string $command [, int &$return_var ]):履行外部程序,而且显现输出.含有两个参数,command为要履行的指令。return_var为可选,假如供给此参数,则外部指令履行后的回来状况将会被设置到此变量中。

string shell_exec ( string $cmd ):履行指令并回来完好的输出为一个字符串,功用跟反引号相似。 resource popen ( string $command , string $mode ):翻开进程文件指针,command 为要履行的指令,mode为规则衔接形式。与proc_open相似。

二、 代码履行注入

代码履行注入不同于指令注入,它是把用户恳求的参数注入到运用中终究到webserver去履行的。一个履行的是体系指令,一个履行的是PHP指令。

call_user_func和call_user_func_array函数原本的功用是调用函数,比方结构开发中动态的调用函数处理传递的值等。 array_map函数将用户自界说函数作用到数组中的每个值上,并回来用户自界说函数作用后的带有新值的数组。 preg_replace函数经过正则进行字符串处理,但当正则包含了修饰符e而且存在可控参数时可形成代码履行。

因而当运用这些函数的时分应尽量不运用可控参数,如需要运用应根据事务场景严厉约束可控参数。代码履行示例如图:


三、 xss缝隙

xss缝隙及跨站脚本进犯,信任咱们都不生疏,都是由于外部提交的参数中含有歹意的js代码。后端接纳后并未严厉的处理就回来给了客户端、输出到页面或存入数据库中形成的。使用场景首要仍是在获取用户cookie上,其实前端能做的事,xss都能做。(常常xss缝隙,开发人员都会问,你谈个框出来有什么损害,有没有!~~)

在ThinkPHP文件加载了体系常量界说等等之后,最终一行初始化了咱们的运用。

Start()静态办法会加载一些运用装备文件中的信息之后,在最终一行,开端运转运用。

                


在run办法的最初,首要调用了init()初始办法。

然后在init办法中,有如下一段代码,它会首要判别REQUEST_VARS_FILTER装备是否为真,为真的状况下,就会把一切接纳的参数一个一个取出来用think_filter函数来进行过滤。


think_filter是写在ThinkPHP/Common目录下的function.php文件中的。


因而在做大局过滤的时分,大多会在此独自写一个办法来做大局过滤。

在ThinkPHP中还有如下几种常用过滤办法,榜首、二种都是调用的结构函数来获取传递的参数值,不同的是一个是指定函数进行过滤,一个是读取装备文件中指定的函数来过滤,假如没有就不过滤,第三种便是惯例过滤了。


其间结构I办法能过滤的原因就在于ThinkPHP/Common目录下的function.php文件中界说了一个I办法,而且在获取前端传递的值时,判别是否传递了过滤函数名,假如有就取此函数名,假如没有就取装备文件中函数名来进行过滤。


在了解了这些之后,咱们才干更好的定位是否存在参数未过滤的状况,至于怎样才算完好过滤,和各种绕过技巧之类的网上已有很丰厚的文章~~~~就不再献丑了。

相关文章

登录框之特殊考虑:来自客户端的诈骗

0×01 前语 前几天刚见人发了一个登录框引发的血案,而惯例的爆炸有风控和各种反常验证码,或许大型的电商都会用SSO完成登录,密码找回逻辑看似天衣无缝,又或许选用第三方的Oauth授权。往往这些惯例的...

网络黑客接单网删除照片需要多少钱?

网络黑客接单网删除照片需要多少钱?

在 Mac 上的“相片” App  中,挑选要想删掉的新项目。   实行下列一项实际操作:   在日...

反击爬虫,前端工程师的脑洞能够有多大?

关于一张网页,咱们往往期望它是结构杰出,内容明晰的,这样搜索引擎才干精确地认知它。 而反过来,又有一些情形,咱们不期望内容能被容易获取,比方说电商网站的交易额,教育网站的标题等。由于这些内容,往往是...

恣意用户暗码重置(五):重置凭据可暴破

在逻辑缝隙中,恣意用户暗码重置最为常见,或许出现在新用户注册页面,也或许是用户登录后重置暗码的页面,或许用户忘掉暗码时的暗码找回页面,其间,暗码找回功用是重灾区。我把日常浸透过程中遇到的事例作了缝隙成...

DuckDuckGo的研讨宣称谷歌“匿名形式”并非真实的匿名

Google能够给用户供给定制化的搜索成果,即便在匿名形式下也是相同。但DuckDuckGo的研讨人员标明,Google的搜索成果不只依据用户的地理位置数据以及之前搜索过的内容,并且还会依据用户的登录...

Google最新XSS Game Writeup

本文介绍了怎么完结谷歌最新的XSSGame的进程,完结了这八个应战就有时机取得Nexus 5x。实际上这八个应战整体来说都不难,都是些常见的xss。通关要求是只要能弹出alert窗口即可。 第一关...