freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

SDL建设过程中安全人员如何进行能力沉淀(上)
2022-06-27 11:30:45
所属地 浙江省

作者:天启@涂鸦智能安全实验室

前言

一般在甲方的SDLC安全工程师,日常工作的一半时间可能都要花在对要上线的系统的渗透测试上!并且SDLC安全工程师要还要最大可能性保证自己测试过的系统上线之后不要被外部白帽子再挖到新的漏洞!之前笔者负责的几个外网系统,由于在上线前没有进行非常仔细的全面的测试,就导致了有两个点被遗漏了,然后就被外部白帽子“捡到了”这些洞!自此之后笔者就在思考!如何保证自己测试过的系统很难再让其他人挖到漏洞!换句话说如何保证让之前出现过的漏洞再也不会被漏测!该文章由此而来!

0x01 渗透的本质

我们日常渗透时,其实所有的操作都可以分为“增删改查”!那意味着,我们日常渗透发现的漏洞都是可以通过对数据包进行”增删改查”实现!那是不是只要我们将“增删改查”的操作保存下来,下次遇到需要测试的点,工具按照我们之前的记录自动进行测试,这样就最大可能地保证不会遗漏点了!

0x02 burpsuite配置文件的一种另类使用

burp中的配置文件可以以json的格式将我们的所有配置保存,下次再使用的时候,我们可以将配置文件直接直接加载即可!

前面说过我们平时渗透的所有操作总结下来,其实就是“增删改查”这些操作!所以我们需要使用到burp的 Match and Replace!就可以实现!

0x03 举两个简单的例子

xss

我们测试xss的时候我们无非就是手工插入xss payload之后看看浏览器的实际渲染效果!其实这个操作完全可以”沉淀“下来,当下次再遇到这个点的时候,burp就会自动帮我们进行xss payload填写!

目前大部分前后端的分离的项目,绝大多数数据都是通过json传递!也就是说大部分我们需要手工修改的参数格式都是: “parameters”:“text”,这种格式!我们日常测试过程中修改的比较多应该是Name参数!下面我们就以Name参数为例!当然下面的正则通用的,读者完全可以可以举一反三推广到所有需要进行替换的参数!下面我来对这个正则进行一个简单讲解!

March :"(?!(user|file|domain|login|admin|uploadFile|upload_file_|account_|login_account_|app|package))(\w{0,100}(N|n)ame\w{0,100})(?<!(Id|test))":"(?!(user|file))(.*?)"

Replace:"$2":"$6/<M>\\""

1656237219_62b82ca3343a494b45cb3.png!small?1656237220334


该正则的作用主要是匹配并替换*Name*参数的内容为<M>\",比如:

"name":"Hello"工具会自动替换之后则变成了"name":"Hello<M>\""!此时就可以人工查看是否存在xss!

针对一些特殊情况,为了不影响正常测试系统,正则中也做了一些限制

针对user,file,domain,login,admin,uploadFile,upload_file_,account_,login_account_,app|package开头的参数 比如”username“:“text“排除在外不进行替换处理。

针对Id,test结尾的参数“nameId”:“text”排除在外不进行处理!

SSRF

针对SSRF的场景,请求数据包中的类型大致可以归为三类(没有覆盖所有,这里只是覆盖了我遇到的所有场景,读者可以根据自己的实际情况再添加)

第一类: “source”:“https://www.tuya.com”

第二类: :“tuya.com”

第三类: :“tuya.com:8080”

针对以上的三类情况Match 和Replace的正则别是

第一类:

Match     :"((?!(targetUrl|thisatestflag)).*?)":"(http.*?)"

Replace  :"$1":"https://SSRFByHttpFile.sjdjsjdjjsdjjsd.ceye.io"

第二类:

Match     :(:"[a-zA-Z\d]+(\.[a-zA-Z\d]+){1,30}")

Replace  :"SSRFByHttpFile.sjdjsjdjjsdjjsd.ceye.io"

第三类:

Match     :"[a-zA-Z\d]+(\.[a-zA-Z\d]+){1,30}:(\d+)"

Replace  :"SSRFByHttpFile.sjdjsjdjjsdjjsd.ceye.io:$2"

我简单介绍一下第一类的正则,为了防止某些特殊情况下,导致替换URL造成系统错误然后退出!所以正则限定了比如像“targetUrl”参数不进行替换操作!读者可以根据自己遇到的实际情况限定相关参数!

根据上面介绍的两个例子,读者其实是可以推广到自己平时测试的所有场景!并将其整理成相应的规则!这样下次再进行测试的时候就可以直接加载配置文件!让burp测试我们平常日常重复测试的点!这样不仅简单省事,而且也不会遗漏一些我们日常懒得测试的点!

0x04分享一个我在日常使用的规则配置文件

https://github.com/ba1ma0/SDLC_Vuln_Auto_Find


漏洞悬赏计划:涂鸦智能安全响应中心( https://src.tuya.com)欢迎白帽子来探索。

招聘内推计划:涵盖安全开发、安全测试、代码审计、安全合规等所有方面的岗位,简历投递sec#tuya.com,请注明来源。







# 渗透测试 # burpsuite # web安全 # SDLC # 配置文件
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录