《Web 安全深度剖析 》 随手记(二)

本文深入探讨了Web安全中的上传漏洞和XSS跨站脚本攻击。介绍了IIS、WebDav、Apache等解析漏洞,以及PHP CGI解析漏洞。针对防御措施,提到了客户端JS验证和服务器端MIME检查的绕过方法,如利用Firebug和中间人攻击。同时,讨论了FCKeditor等文本编辑器的上传漏洞。对于XSS,解释了其原理和类型,并提出了手工和自动化检测方法。最后,文章概述了如何修复上传和XSS漏洞,强调了输入过滤和启用HttpOnly的重要性。
摘要由CSDN通过智能技术生成

第六章(上传漏洞)
        上传漏洞比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    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值