php代码审计
php代码审计
Mamba start
.
展开
-
PHP代码审计基础手册
PHP代码审计基础手册审计第一步审计INI配置文件审计SQL注入审计XSS审计CSRF审计文件包含审计文件读取(下载)审计文件上传审计文件删除审计代码执行审计命令执行审计变量覆盖审计省份认证...原创 2020-08-30 11:08:07 · 218 阅读 · 0 评论 -
PHP-代码审计-身份认证
当你的才华还撑不起你的野心时那你就应该静下心来学习 代码审计学习线上实验,都是CE一边实操,一边整理的笔记,方便以后翻看时,可快速查阅。目录身份认证漏洞简介cookie身份认证漏洞seesionid 固定漏洞漏洞防范• cookie身份认证漏洞防范session固定漏洞防御身份认证漏洞 &...转载 2020-08-30 10:58:17 · 317 阅读 · 0 评论 -
PHP-代码审计-变量覆盖
当你的才华还撑不起你的野心时那你就应该静下心来学习 代码审计学习线上实验,都是CE一边实操,一边整理的笔记,方便以后翻看时,可快速查阅。目录变量覆盖漏洞一、简介• extract()函数• parse_strc()函数• import_request_variables()函数二、漏洞利用三、漏洞防范 extract()...转载 2020-08-30 10:55:28 · 410 阅读 · 0 评论 -
PHP-代码审计-命令执行
当你的才华还撑不起你的野心时那你就应该静下心来学习 代码审计学习线上实验,都是CE一边实操,一边整理的笔记,方便以后翻看时,可快速查阅。目录命令注入漏洞产生的原因简介相关函数命令注入漏洞防范命令注入漏洞产生的原因 命令注入攻击可被攻击者用来导入代码到某特定的计算机程序,以改变程序的运行进程或目的。 PHP命令注入则是由于...转载 2020-08-30 10:53:54 · 320 阅读 · 0 评论 -
PHP-代码审计-代码执行
概述类似于SQL注入,可以吧SQL语句注入到SQL服务执行PHP代码执行则是吧代码 注入应用中最终到WebServer去执行,这样的函数如果没有过滤,相对于存在一个后门代码执行函数eval()assert()preg_replace()call_user_func()call_user_func_arry()array_map()等挖洞经验eval()和assert()函数导致的代码执行漏洞大多是因为载入缓存或者模板以及对变量的处理不严格导致,比如直接吧一个外部可控的参数直接原创 2020-08-29 15:40:33 · 790 阅读 · 0 评论 -
PHP-代码审计-文件删除
概述文件删除漏洞出现在文件管理功能的应用上比较多,这些应用一般也都有文件上传和读取的功能,删除原理漏洞原理跟文件读取漏洞差不多,利用的函数不一样而已函数常出现的函数是unlink()挖掘经验直接搜索带有参数变量的unlink(),依然采用回溯的方式即可代码分析任意文件删除分析if($action=='delete'){ if(is_array($filenames)){ foreach($filenames as $filename){ if fileext($fil原创 2020-08-28 12:05:00 · 175 阅读 · 0 评论 -
PHP-代码审计-文件上传
函数move_uploaded_filemove_uploaded_file ( string $filename , string $destination ) : bool$filename 上传的文件的文件名。$destination 移动文件到这个位置。本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。move_uploaded_原创 2020-08-28 10:39:44 · 483 阅读 · 0 评论 -
PHP-代码审计-文件读取(下载)
概述部分程序在下载或者读取显示文件的时候,读取文件的参数filename直接在请求里面传递,后台程序获取到这个文件路径后直接读取返回挖洞经验文件读取的漏洞寻找起来比较容易一种方式是可以先黑盒测试功能点对应的文件,再去读文件,这样找起来比较快。另一种方式就是搜索文件读取的函数,看看有没有直接或者间接控制的变量。文件读取函数如下:file_get_contents()highlight_file()fopen()readfile()fread()fgetss()fgets()par原创 2020-08-27 18:08:41 · 266 阅读 · 0 评论 -
PHP-代码审计-文件包含
文件包含文件包含函数include() include_one() require() require_once()他们之间的区别在于:include()和include_one在包含文件时即使遇到错误,下面的代码依然会继续执行;而require()和require_one() 则会直接报错退出程序挖洞经验文件包含大多出现在模块加载,模块加载以及cache调用的地方,比如传入的模块名参数,实际上是直接吧这个拼接到了包含文件的路径,比如像espcms的代码:$archive = index原创 2020-08-27 17:12:16 · 418 阅读 · 0 评论 -
PHP-代码审计-CSRF
挖掘经验黑盒挖掘抓包看看有没有token,如果没有token的话,再请求该页面,不带referer,如果返回数据还是一样很可能就存在csrf漏洞白盒挖掘读代码的时候,看看几个核心文件有没有验证token和referer相关的代码,这里的核心文件指的是被大量文件引用的基础文件,或者直接搜token这个关键字找,如果核心文件没有,再去看看你关心的功能点的代码有没有验证漏洞防范添加token验证...原创 2020-08-27 14:54:53 · 190 阅读 · 0 评论 -
PHP-代码审计-XSS
文章目录XSS挖掘流程黑盒挖掘白盒挖掘DVWA白盒挖掘演练储存型反射型xss利用姿势复习XSS挖掘流程黑盒挖掘直接像渗透一样挖掘即可,因为XSS通常是可以黑盒挖掘出来的白盒挖掘漏洞产生条件用户输入参数:GET POST …函数输入到输出是否有过滤?漏洞爱产生的位置发文章处回复评论处用户昵称签名处注册修改资料处…基本流程寻找带有参数的输出函数根据输出内容回溯输入参数输出函数列表: print,print_r, echo, printf, sprintf, di原创 2020-08-27 13:25:11 · 209 阅读 · 0 评论 -
PHP-代码审计-ini配置文件
原创 2020-08-26 16:41:40 · 150 阅读 · 0 评论 -
PHP-代码审计-审计第一步
原创 2020-08-26 16:37:10 · 212 阅读 · 0 评论 -
PHP-代码审计-SQL注入
代码审计白盒测试搭建成功后 用WEB漏洞扫描工具利用网站的源码进行代码审计准备工作漏洞参数条件:函数 可控变量列如sql注入函数关键字:mysql_connect mysql_select_db mysql_query 等可控变量关键字:$_GET $_POST $_REQUEST $_SERVER等定点漏洞挖掘分析漏洞产生条件得到漏洞关键字利用工具查找关键字分析文件名进行判断筛选对文件进行代码分析 跟踪变量确定是否存在该漏洞正常定点挖掘数据库监控工具挖掘原创 2020-08-26 16:25:40 · 596 阅读 · 0 评论