第六章(上传漏洞)
上传漏洞比SQL注入风险更大,只要有上传,就可能存在上传漏洞
1.解析漏洞
IIS解析漏洞:建立畸形文件夹 .asa .asp,目录下的任意文件当做asp解析
WebDav漏洞:用户权限过大,可以上传脚本,给脚本改名
Apache解析漏洞:碰到不认识的扩展名时,从后向前解析,都不认识就爆源码。
PHP CGI解析漏洞:上传文件,在url后加上/xxx.php,就可以执行文件2.绕过上传漏洞
程序员在防御上一般采用两种方法: 客户端js验证,服务器验证MIME、随机数重命名文件
上传漏洞配合一句话图片木马,
常见代码如下 PHP : <?php @eval($_POST['chopper']);?>
ASP: <%eval request("chopper")%>
ASP.NET:<%@ Page Language="Jscript"%><%
eval(Request.Item["chopper"],"unsafe");%>
绕过思路
客户端检测:可以用Firebug过js或者 中间人 改HTTP 正文
服务端检测:如果是黑名单,看是否有忽略的扩展名,以. 或者 空格结尾 命名。
如果是白名单,恰有时iis6.0 木马为 pen.asp;1.jpg 。最终绕过检测。
如果允许建立目录,则建立畸形目录。
截断上传攻击,%00 后面的字符都截断,截包后改hex 20 为 00
3.文本编辑器上传漏洞
FCKeditor现改名为CKEditor
敏感信息暴露: fck_about.html
默认上传页面未删除、链接对象未删除
黑名单策略有遗漏
4.防漏要领-修复上传漏洞
防御上传漏洞程序员需要做得更多些
目录过滤、文件重命名
第七章(XSS跨站脚本漏洞)
XSS叫跨站脚本攻击css,是常见的Web应用程序安全漏洞之一。
实质:在用户浏览器中执行恶意代码。1.XSS 原理解析
利用JavaScript 获取用户的Cookie,改变网页内容,url跳转
2.XSS 类型
反射型(最常见)、存储型(最危险)和DOM型(不需要与服务器通信,仅盗取页面信息)
3.检测 XSS
手工检测:
可得知输出位置:提交后看HTML源码看是否转义了
无法得知输出位置:输入 "/XSS Test 来测试
全自动检测:
XSSER、XSSF 检测工具效率高, 最好是工具与手工并进。
4. XSS 高级利用
盗取Cookie、sessionid 实现会话劫持
XSS Framework练习平台:XSSER.ME、XSS Shell
开源项目甚至可以 GetShell
5.修复要领-修复XSS跨站漏洞
输入严加过滤,敏刚字符过滤。
在php中可以用函数把敏刚字符转为HTML实体
启用HttpOnly,将js不能读取Cookie第八章(命令执行漏洞)
指攻击者可以随意执行系统命令
这类漏洞在b/s c/s 框架中都常有1.OS命令执行漏洞示例
ping www.xxser.com && net user
2.命令执行模型
任何脚本语言都可以调用操作系统命令,开发人员要明白这些函数的正确使用
命令执行漏洞是直接调用系统命令,代码执行漏洞是靠脚本调用系统命令,如:
eval(system('set'););
PHP 命令执行:system(xxxxx);PHP 代码执行: eval(xxxxx);
动态函数执行:$fun() ; PHP 函数代码执行漏洞: array_map(phpinfo)JAVA 命令执行:Runtime.getRuntime().exec()
3.框架执行漏洞
Struts2代码执行漏洞、ThinkPHP命令执行漏洞
4.防范命令执行漏洞
尽量不要使用系统命令、变量要过滤敏字符、验证动态函数是指定函数之一第九章(文件包含漏洞)
使用某些函数时,如果需要调用文件,就叫做包含。
包含漏洞往往特征是,文件名是一个变量。
ASP.NET、JSP、ASP.NET中非常少文件包含漏洞,PHP居多1.包含漏洞原理解析
PHP包含:require()、include()函数作孽
文件包含实例:
本地包含练习:balabala
远程包含练习:balabala
文件包含漏洞示范:
http:xxx/index.php?page=xxx.php,文件不存在爆网站绝对路径。
PHP文件包含利用:读取敏感文件、远程包含Shell、本地包含配合文件上传
使用PHP封装协议读取文件、包含Apache日志文件、截断包含
绕过WAF防火墙
JSP包含
静态包含:被包含的文件以文本显示,不执行,很鸡肋。
动态包含:包含Web.xml文件,会爆数据库等敏感信息
2.安全编写包含
漏洞形成的原因是:被包含的页面被攻击者控制
防范要领:
1.包含的参数不可被外部控制
2.路径限制在某个文件夹中,禁止目录跳转
3.文件名白名单限制
4.不要使用动态包含,提前固定写好。第十章(其他漏洞)
1.CSRF(跨站请求伪造)
攻击原理:盗用身份,进行非法操作
攻击场景(GET):欺骗用户访问 特别构造的URL
攻击场景(POST):欺骗用户访问 post.html,ajax自动提交表单
浏览器Cookie机制:恶意网站访问其他站的cookie有可能会成功
检测CSRF漏洞:手工检测(发表留言等)或半自动检测(CSRFTester)
半自动检测原理: 软件先记录用户的正常操作,记录网站与用户的正常交互页面,
接下来,软件生成POC页面,
POC页面就是模拟安全意识淡薄的用户,瞎鸡儿点击操作,
如果CSRF成功,网站会添加一个CSRFTest 用户
防范CSRF要领:
1.弹框二次确认,设置验证码,Token认证
2.逻辑错误漏洞
逻辑漏洞比较隐蔽,自动化工具无法识别,不同场景下, 逻辑漏洞有不同的威力。
挖掘逻辑漏洞:体验网站的功能,根据业务流程确认具体步骤,代理拦截包,修改参数,触发逻辑漏洞。
绕过授权验证:分为水平越权 和 垂直越权
密码找回逻辑漏洞:使用用户填进去的邮箱,抓包后修改再提交服务器。
支付逻辑漏洞:数量是负数,没有正确使用异常处理。
指定账户恶意攻击:让对手的账号锁定,不能正常使用。
3.代码注入漏洞
客户端提交的数据被当做代码处理,常见OS命令执行,文件包含,动态函数调用,代码执行
XML注入:关键是闭合xml标签,修复思路:转义字符
XPath注入:是选取XML节点的一门语言,修复思路:重要的信息不要用xml传输
JSON注入:暂无危害
HTTP Parameter Pollution:这是Web容器处理参数能力不足导致的问题,经常用来绕过WAF.
4.URL跳转与钓鱼
URL跳转:分为客户端跳转response和服务器跳转request
钓鱼:通过HTML伪造网站,使用URL跳转躲避恶意检测。
注意:URL转发不可作为URL跳转漏洞,因为URL转发是无法进行域名跳转的,
跳转漏洞页称为URL重定向漏洞,利用的是网站本身有XSS跨站脚本漏洞,借刀杀人。
5.WebServer远程部署
远程部署配置不当,引起的入侵,属于配置性错误漏洞
Tomcat:默认端口8080,使用WAR木马文件可以远程部署网站
JBoss:默认端口8080,被红帽收购,默认无需密码即可登录
WebLogic:默认端口7001,被oracle收购,老版本中默认密码Weblogic
《Web 安全深度剖析 》 随手记(二)
最新推荐文章于 2022-05-30 17:02:59 发布
本文深入探讨了Web安全中的上传漏洞和XSS跨站脚本攻击。介绍了IIS、WebDav、Apache等解析漏洞,以及PHP CGI解析漏洞。针对防御措施,提到了客户端JS验证和服务器端MIME检查的绕过方法,如利用Firebug和中间人攻击。同时,讨论了FCKeditor等文本编辑器的上传漏洞。对于XSS,解释了其原理和类型,并提出了手工和自动化检测方法。最后,文章概述了如何修复上传和XSS漏洞,强调了输入过滤和启用HttpOnly的重要性。
摘要由CSDN通过智能技术生成