今天的网络犯罪案例因其隐藏的特征而具有专业化趋势。例如,金字塔方案,赌博,色情直播等等都是与移动应用的互动,随着https的普及,许多公共云无法通过流量有效地防范网络犯罪,从而提供保护服务。 网络对抗不仅是利用漏洞,而且越来越多地反映了攻防对抗。旁路waf的检测和利用变得越来越有趣。 JSRC 安全教室119号,邀请小石作为讲师分享共同的waf拦截情况并绕过大家分享。同时,我要感谢各位朋友的精彩讨论。
京安小妹:测试是否遇到CDN保护?
小灰: 根据CDN的解析原理,它绕过架构层并找到真正的IP。根据DNS的解析顺序,本地主机优先于DNS查询。在本地绑定主机后,使用域名访问是绕过CDN并直接访问网站。 1. nslookup检查域名解析中流量较小的记录。 查询域名的NS记录,域名记录中的MX记录,TXT记录等。由于流量小,无需优化线路,可能指向真实IP或相同C段服务器。 2,通过C段检测。 如果公司的业务可能放在同一个计算机房中,则IP可能是相同的C段。首先,找到不使用cdn的子域的IP地址。 (VPN,SSLVPN IP通常是c段),扫描c段,传递标题和页面。内容判断,找到真正的IP 3.历史分析。 查询DNS解析的IP历史记录,找到真实的IP。更有用的DNS解析历史IP网站 https://www.passivetotal.org/,除此之外,您还可以使用它来收集子域名。 4,墙外法(现在不易使用)。 当国内CDN计算机房刚刚建立时,没有外国节点,甚至没有计算机房的C部分。外国要求。 将直接指向真正的IP。使用外部多节点ping工具,例如http://www.just-ping.com/,全球数十个节点ping目标域名,就有可能找到真正的IP。 5,主动回来 例如,一些网站的查看源IP的邮件回复功能可能获得真实的IP,主要取决于发送的组件是否具有IP字段。找一个ssrf漏洞或类似的上传远程文件功能,访问我们的服务器,就可以获得真正的ip 6,系统配置文件 探测文件phpinfo或某些配置输出SERVER ['SERVER_ADDR'] 7,masscan全网扫描,提取Web服务,提取内容和测试网站比较。这个想法相当不错,只是有点麻烦,如果扫描错过了,我不是在哭。
静安小梅:收集信息时,检测端口和扫描目录是否禁止?
小灰: 没有提到降低频率和修改XFF报头的方案。 1.当您无法扫描目录时,请勿忽略爬虫。对于二次开发网站,您始终可以找到未通过爬网程序修改的链接。您可以确定开发的cms并提供渗透理念。 2.您可以借用第三方资源来降低我们的渗透成本并收集信息。 探针端口可以使用浏览器shodan插件,数据更新速度特别快,可以从截图中看到。 Shodan是一个分布式主机部门,它扫描单个端口并将其存储在池中。对于我们的测试对象,每个主机只扫描一个端口,因此可以防止它被禁止。端口检测变为api访问。例如,检测c段网络服务更快,并更快地找到其余资产。缺点是只扫描公共端口。
3,使用tor网络,更换IP方式,绕过waf拦截,特别是在手动测试waf规则时
4,使用代理池,自动替换ip 17年黑帽中提到的一个工具,使用tor网络来代理池替换IP。项目地址https://github.com/realgam3/pymultitor Git上的http代理池项目将从整个网络中找到http代理,并自动从代理池中获取代理替换行。 https://github.com/imWildCat/scylla
静安小梅:Waf处理数据的原理过程和可能存在的问题? 小灰:
原理流程:数据链接由waf提取——数据——数据预处理——规则匹配 推荐大家阅读好文章,破碎 - 见《WAF攻防研究之四个层次Bypass WAF》https://weibo.com/ttarticle/p/show?id=2309404007261092631700,虽然这是一篇为期16年的文章,但旁路的想法基本上都来自这四个角度,具体遇到需要分析拦截内容并测试旁路方法。 这种原则过程链接可能会对保护手段带来限制: 1,链接层: 可以通过查找真实IP来绕过诸如云waf(一般保护手段)之类的Cdn防御。 2.资源层: 探测分组的大小是有限的,并发请求访问的频率是有限的,导致丢失分组。 3.协议层: 协议污染和协议未涵盖 4.规则层: 功能或常规写入错误,导致规则不完整 数据提取引起的问题:以struts2-045漏洞和内容类型内容的收集为例,@草师傅分析了当时每个waf的情况。这里有一些例子。 一些waf检测攻击简单而粗鲁。检测到Content-Type拦截中存在$ {或%{。由于不同的WEB服务器或容器对HTTP标头有不同的解释,因此Content-Type和最终的WAF获得Web容器中的不一致性,导致绕过WAF。 方法1:在包的末尾添加一个内容类型: multipart/form-data。 如直接在EXP的构造中所示将由waf拦截
添加Content-Type后,成功绕过了waf,代码可以正确执行
方法2:Wrap + space,因为http协议允许换行+空间,在某些服务器中它是可行的,例如tomcat和其他支持http头的服务器。
2,云waf检测方法也很简单,直接检测Content-Type中的多部分/表格数据,绕过方法非常简单,添加内容类型: smultipart/form-data $ {exp}关注由EXP代码 其次是EXP代码
数据预处理的问题:空白,注释,编码。 有很多这样的案例。注入旁路时将提到以下内容。 规则匹配的问题:核心是常规匹配规则。 在一个案例中,我遇到了waf,post请求的注入拦截,并将内容类型:转换为multipart/form-data并仍然被截获。 @落师傅建议绕过参数并添加文件名,可以猜测常规逻辑是根据文件上传规则检测文件名,并且不执行注入规则检测。
使用注释和换行符,后端sql语句可以正常执行。
静安小梅:sqsi是一个常见的危害,有很多漏洞。如何在几种常见的waf下测量注射���如何制作数据?
小灰: Sqli的三个级别,确定是否存在,证明数据可以输出,可以跨数据库数据。我们来谈谈测试绕过规则的过程。 1,云端绕过 ?id=1%20and ~~ 1=1 此测试使用〜反转操作来绕过沙子的边界匹配。该基本陈述确定是否存在注射。 ?id=1和user()被截获 /?id=1或~~ 116=ascii%23%0a(substring%23%0a(database%23%0a(),1,1)) 联盟选择拦截,绕过 - +%0a ?id=1%27或~~ 1=1联合 - + 123%0选择1 从不拦截中选择1 从双重拦截中选择1 从{a database.table_name}中选择@ b:=(column_name)不会使用odbc语法进行拦截 联盟选择from1拦截,在联合的情况下,从后跟字符被拦截,过滤规则特别严格 使用@a:的定义来更改union select以从union select中选择 ?id=1%27或~~ 1=1%20和@ a:=(从{a database.table_name}%20union--+%0aselect@a 中选择@ b:=(column_name) 该语句还能够正常输出数据。
2,屏蔽waf旁路获取请求 测试同样的原因 ?id=1%20和~~ 1=1拦截 ?id=1%20and`id`like 1不拦截,可用于测试是否有注射 ?id=1%27和%20 @ a:=(选择 - +%0apass - +%0afrom - +%0adual) - +%0aunion(选择%20 @ a) 3,网站保护软件绕过 这是我16年来发现的一种方法。当faf预处理数据时,它用空格替换/**/comment,然后输入匹配拦截的规则。现在这个逻辑没有改变。 这是一个16年的截图,当保护日志可以看到拦截过程。
新版本的测试 http://192.168.79.131/sqltest.php?a=/*&id=1联合选择1,用户来自mysql.usre& b=* /
您可以看到,测试规则的旁路是逐步判断过滤的内容,哪些仍然可用,使用已知的姿势,组合旁路,因此您可以总结过程以编写有效负载测试。
静安小梅:找到一个特殊的敏感文件,但是waf禁止特殊文件访问?
小灰: 小心和模糊 1,限制目录访问常规可写/admin /,浏览器会发送包,通过burp package/admin /可以绕过限制访问目录,系统的403限制,原理是不一样的。 2,限制文件访问,模糊后缀,windows忽略%20功能,如waf匹配(。*。svn-base $),使用后缀.svn-base%20来绕过限制。
3,如果是云waf考虑资源限制 在多并发状态中,考虑到资源消耗,用户体验可能不会通过该分组。例如,云盘资源突然限制下载,打开burp重放包,可以继续下载云盘资源。 (我不知道我是否仍然可以使用它。我很长时间没有这个要求.QWQ)
这是JSRC安全小班的结论。如需更多内容,请期待下一个安全小班。如果您还想在安全的小课堂内容中出现某些内容,请留言告诉我们。 对以前安全小班的内容进行了自我询问。单击菜单栏进入“安全小课堂”进行浏览。