trick

更新时间:2022-11-26 14:48:42 阅读: 评论:0


2022年11月26日发(作者:神探夏洛克第二季2)

BurpSuiteTrickALLInONE(第⼀版)

BurpSuite是⼀款Web安全研究⼈员、渗透测试⼈员和BugHunter的⼯具,在实际使⽤的时候⼀些⼩Trick将会帮助你更⾼效的使⽤这款⼯

具,本⽂是在看到Twitter上@c_r0开启的⼀个话题#BurpHacksForBounties之后基于他提到的⼀些trick进⾏扩展之后撰写的,在撰

写的途中融合进了个⼈在使⽤BurpSuite时的⼀些trick和想法,也参考了众多⽂章,本篇为第⼀版,随后再有更多Trick的话会继续更新下

⼀版。

BurpSuiteTrickALLInONE(第⼀版)

0x01Basic

1x1AntiBurpbyWebInterface

1.配置SwitchyOmega代理的时候增加设置如下列表的不⾛代理

ite

4.

主要原因是防⽌被检测到使⽤burpsuite在抓包,最重要的是防⽌被检测到使⽤burp抓包之后返回蜜罐的响应信息给你。

参考:

1.最好把burp的也删除

zip-dburpsuite_"resources/Media/"

参考:

1x2AntiBurpbyJA3指纹

cloudflare上的https站点使⽤burp和python均⽆法发包,应对的⽅式就是在burp的上游再加⼀个代理。

0x02Trick

2x1TurboIntruder

1/N使⽤⽅法:

1.⾸先你需要安装这个插件

2.选中⼀个请求,点击右键选择Extensions-Sendtoturbointruder

2/N⼀旦你向该插件发送请求,⼀个python编辑器就会打开,窗⼝会显⽰⼏个现有的python脚本,供你参考和使⽤。

3/N增加并发量或增加管道,然后点击攻击。⽰例代码见(或者下⾯):

###Thisctionwillmostlyremainasitis

###defqueueRequests(target,wordlists):engine=RequestEngine(en

dpoint=nt,concurrentConnections=5,requestsPerConnection=100,pipeline=Fal

)

###----------------------------------------

ThisattackwillbesimilartoClusterBombtechnique#Asth

eyarenestedloops#Youcandoalmostanythinghere,withthepowerofpython,#thiswillbeappliedtorequestparamswhereyouhavet%s%si

ntheRequestctioninthetopforfirstParaminopen('/usr/share/dict/words'):forcondParaminopen('/usr/share/dict/web2'):

e(,[(),()])#Doanythingwithrespon,let

dleRespon(req,interesting):#,unt,#add

(req)data=('utf8')#Extractheaderandbodyheader,_,body=ion('rnrn')

#Savebodytofile/tmp/put_file=open("/tmp/","a+")output_(body+"n")output_()

4/N使⽤这个插件,你⼏乎可以在Burp⾥⾯⽤Python做任何事情

例如:

处理⾃定义登录

定制化的⼀些测试

过滤你想要的请求

添加速率限制、管道等

2x2Match(匹配)andReplace(替换)功能的有效使⽤

要点:

(1)Fal2Truetrick

(2)在所有的参数处注⼊通⽤性payload

1/NFal2Truetrick,当⽤户访问⼀个资源是未经授权的。通过在burp响应体匹配和替换中将服务器响应体从F更改为T,有很⼤的机会

可以使隐藏的客户端控件取消隐藏属性。

1.添加匹配和替换(Matchandreplace)。

2.添加所⽰的替换。

这是⼀个将fal返回体更改为true的⽰例技巧。并且这是⼀个⾮常常见的⽤例。

2/N今天的主要技巧。在表格中⾃动的注⼊payload,⽽不是⼿动打出整个payload。

3/N上述匹配和替换规则将把请求主体中的所有KKK替换为SQLi和XSS这种通⽤型payload。

此处的⽰例载荷

'">

test

这样的话只要把KKK放在参数输⼊处,发送之后就会⾃动将对应的位置替换为⽰例中的有效载荷,这样就可以对XSS和SQLi漏洞进⾏发

现。

PS:其实这个功能也可以⽤于Hosts碰撞得到host对应的内⽹域名名之后,设置替换对应的内⽹域名。相关⽂章—

2x3FindReferences:Burp中最被低估和未被充分利⽤的功能

PS:只有Pro版本的可以在整个Burp中去寻找URIs的references(引⽤),这个功能的重点是发现客户端脚本对后端的请求,从⽽发现更多

的测试点。

1/N从任何地⽅挑选请求,右击->EngagementTools->FindReferences

2/N⼀个新的窗⼝将被打开,它将显⽰references和这些references的位置。位置可以是repeater,scanner等。reference可以是在请

求、响应、头⽂件中。将会像图⽚中所⽰的那样被⾼亮显⽰。

3/N可以⽤来发现浏览器的脚本发送的请求,并学习它来制作你对该端点的有效载荷请求。

2x4你可以在req模块中修改被压缩的数据

不要忽视BurpSuite中那些看起来的脏数据。可以保持这⼀设置,并在Burp中玩弄压缩数据

1/N在BurpProxy中,解压设置默认是禁⽤的,像这样启⽤它。

2/NBefore&After.

2x5⼀次性检测所有攻击载荷的攻击效果

⼀次性检查intruder,repeater,quencer等模块中数据包的响应信息,⽽不是每次都向浏览器发送反应。

⼀个⼀个检查intruder模块中的每⼀个测试结果是⾮常⽆聊的(特别是对XSS漏洞),所以你可以按照如下过程进⾏操作:

1.在启动intruder之前,转到BurpSuite的projectoptions中->logging->tickintruderrespon->将它保存为⼀个html⽂件

1.然后双击这个html⽂件,所有的XSSpayload就会⼀起被触发了

2x6禁⽌Firefox发送与其相关的请求

0/N⾸先,为什么使⽤BurpSuite和Firefox的组合?现在的BurpSuite已经内置了Chromium浏览器,为什么还要使⽤Firefox?

这是因为:

Burp内置的Chromium在每次不同的运⾏中都不能保持设置。

每次都要重新安装插件

不能禁⽤本地CORS检查

不灵活等。

2/N最好的办法是在Firefox上禁⽤这个功能,⼀劳永逸。

相信我,这很容易,这将是你的伟⼤投资。

进⼊about:config,完全禁⽤这个功能。

这个⽅法只是其中之⼀,还有两种解决⽅案

1.利⽤功能

BurpSuite->Proxy->Options->TLSPassThrough.

.*..*..*.^.*?apple..*$^.*?icloud..*$^.*?mzstatic..*$^.*mozilla.(com|net|org)$^.*.$^.*.

m$^.*.ghostery.(com|net)$^.*.$^.*.$^.*.$^.*.$^.*.$^.*.$^.*.azureedg

$^$^.*.$^.*.$^.*.$.*..*..*.

PS:也有师傅提出如果不需要拦截所有⽹页流量的话,可以⽤scope,scope的⽅法可以参考⽂章

1.替换掉firefox的⽂件,从源头上根治

将⾥⾯的放到对应的profie下,firefox就不会发出⼀堆烦⼈的请求了

Windows:C:UrstMacOSX:Urs//Library/ApplicationSupport

/Firefox/Profiles/tLinux:/home//.mozilla/firefox/t

2x7宏(Macro):录制的会话

Part1:What,How&Why?

1/NBurp套件中的宏(Macros)是⽤来记录⼀组请求的。

你⾸先通过代理传递请求,然后选择要添加到宏中的请求集来创建这些记录的请求。

要创建⼀个宏(Macro)。ProjectOptions->Sessions->Macro

2/N点击添加,代理标签将打开。

发送你想记录的请求。

点击确定。

宏将被记录下来,给它起个好听的名字。

3/N在会话中使⽤宏。

对于现在所有范围内的URL,在会话下的这个宏将在每个请求之前运⾏。

N/N使⽤案例

拥有⾃定义登录的⽹站(常见的例⼦就是带token的情况)。

有助于编写扩展插件。

IDOR测试。

这是典型的使⽤上⼀个请求响应中的token作为下⼀个请求的参数,你发送的请求才能够被后端成功接收的案例。

⾸先找有token的那个请求记录

点击configureitem->add->双击对应的字符串,burp会⾃动创建对应的规则

之后设置使我们创建的宏⽣效(起作⽤+作⽤范围)就好了

随后在发包的时候只要看到我们的token是发包前更新的就可以验证宏设置成功了

但是这种的局限性就是他只能替换token=这种形式的,对于json或者其他则⽆能⽆⼒,此时就可以使⽤插件,关于这个插件的使⽤可以参

考:。但是这个插件还是⽐较复杂的,更简单⼀点的插件是,对应的⽂章介绍是

Part2:Howtoutoautomatetesting?

通过宏进⾏⾃动化,在为API和受保护的资源创建会话时使⽤宏。

⼀旦创建,将其作为会话(ssion)添加,并设置范围(scope)。在演⽰中,我将所有的URL添加为范围(scope)。

现在,⼯具范围中提到的所有请求将被宏处理。

可以使⽤跟踪器(Tracer)来调试宏

2x8在BurpSuite中repeater模块的响应中快速追踪你修改的参数

当你在中继器选项卡中修改⼀个参数,它的值会反映在响应中,当你必须滚动查看变化的内容时,你可以启⽤这个切换键……真正的省时省

⼒!

操作如下图⽚所⽰。

2x9你在使⽤BurpSuite时也⾯临着缓存响应的问题吗?

如果受到了缓存的影响,那么关闭它就好了

在这个模块中开启以下两个规则Proxy->Options->MatchandReplace.

If-Modified-Since

If-None-Match

有时我在Burp中看到304的响应,我不得不在Burp历史中挖掘,以检查第⼀次出现的响应并进⾏分析。移除这些头⽂件后,你可能不会再

看到这样的响应。

2x10在使⽤BurpSuitepro进⾏企业测试的时候,我们不应该捕获和存储企业的证书

使⽤的步骤以及为什么这点是重要的:

步骤:

1.临时项⽬/会话。

2.登录到应⽤程序,像正常⼀样。

3.识别哪些域的请求包含凭证。

4.在Burp中启动主项⽬。

5.将这些域添加到SSL穿透中。Proxy>Options>TLSPass-Through

我为什么这样做。我保存了会话,⽽burp将存储这些凭证和会话。我个⼈不希望凭证被存储在⽂件中。

另⼀个重要的问题是,我们不是在测试SSO,⽽是在测试SSO背后的应⽤程序。

2x11基于burpproxyhistory⽣成字典

tTreeasETimporturllibimportba64importmathimportsysimportre#usage:OpenBurp,navigatetoproxyhistory,ctrl-atolec

tallrecords,rightclickand"SaveItems"e.##entropy(string):#"Calc

ulatestheShannonentropyofastring"#getprobabilityofcharsinstringprob=[float((c))/len(string)ys(list(string

))]#calculatetheentropyentropy=-sum([p*(p)/(2.0)forpinprob])returnentropydefavgEntropyByChar(en,length):

#calulate"average"entropylevelreturnen/lengthtree=([1])root=t()wordlist=[]foriinroot:#prervesubdomain

s,file/dirnameswith.-_wordlist+=('|?|&|=',i[1].text)#getsubdomainnamesandbreakupfilenameswordlist+=('|?|&am

p;|=|_|-|.|+',i[1].text)#getwordsfromcookies,headers,POSTbodyrequestswordlist+=('|?|&|=|_|-|.|+|:||n|r|"|'|<|>|{|}|[|]|

`|~|!|@|#|$|;|,|(|)|*||',e(ba64.b64decode(i[8].text)))#responifi[12].textisnotNone:wordlist+=('|?|&|=|_|

-|.|+|:||n|r|t|"|'|<|>|{|}|[|]|`|~|!|@|#|$|;|,|(|)|*|^|||',e(ba64.b64decode(i[12].text)))auxiliaryList=list(t(wordlist))final=

[]avgEntropyByLength={}forwordinauxiliaryList:m()or'-'inwordor'.'inwordor'_'inword:en=entropy(word)#remove"ran

domstrings"thatarehighentropyifen<4.4:(word)()withopen('','w')asf:foriteminfinal:("%sn"

%item)print""

2x12使⽤Burp来对⽬标进⾏批量扫描

很多时候我们会在burp上⾯集成很多萨漏洞扫描或者信息收集插件,所以可以借助设置上层代理的⽅式来将⽬标发送到burp,随后使⽤

burp来对⽬标来做下⼀步的安全测试。

|httpx||gau|-replay-proxy127.0.0.1:8080/

基于这个想法扩展⼀下,准备做⼀个中间层(数据包去重+重要信息提取),把爬⾍(crawlergo,rad,LSpider)和Burp(xray也可以)联动起

来,既然不知道⽤哪个爬⾍那就全都要。#TODO

2x13IPtables+BurpSuite+Android应⽤

在设备上添加BurpCA

绕过capinning

root设备(iptable需要)

Dport(是设定⽬的端⼝的参数)80路由-运⾏以下命令(或许对443端⼝也需要做这样的事情)

iptables-tnat-AOUTPUT-ptcp--dport80-jDNAT--to-destination:8080iptables-tnat-APOSTROUTING-ptcp--dport80-jMASQUERADE

2x14使⽤repeater模块测试那些通过反向代理的请求

例如这个⽹站,⽹站进⾏了反向代理的设置,它会检查⼦域并对其进⾏相应的路由,现在让我们为它改变host。

图1:Target的值与Host的值相同的时候

图2:Target的值与Host的值不相同的时候,这个请求就会被路由到不同的站点

2x15HTTP-Pipelining

HTTP-Pipelining⽅式的好处就是会产⽣跟域前置(domainfronting)相类似的效果,将恶意请求隐藏在正常请求之后,并且⽬前⼤多数服

务器都是⽀持这个技术的。此测试技术可以参考⽂章。在burpsuite中可以使⽤如下⽅式来开启HTTPpipelining功能

PS:其实初看这个概念你可能觉得陌⽣,但是这个技术点其实就是前⼀段时间最⽕的HTTP-Request-Smuggling(HTTP请求⾛私漏洞)

2x16在Intruder模块中设置过滤

过滤出那些呈现出特定响应的数据包

1.为Intruder的响应数据包创建⼀个过滤器。

1.载⼊payload开始fuzz

2.如果响应包含你在“grep“中输⼊的字符串,将显⽰在⼀个额外的列中。

->你只能关注你正在寻找的响应。

2x17Plugin:BurpBounty

在BurpSuite主动/被动扫描器中添加你⾃⼰的扫描规则。不需要写⼀⾏代码就可以在扫描器中⾃定义检查策略。

插件名称:BurpBounty扫描检查⽣成器。

这是⼀个相当容易使⽤的插件。从BAppStore安装,⽤简单的名字创建⼀个检查。给它⼀个严重性,检查输⼊你想执⾏/检查的

req/res,并启⽤它。

2x19BurpCollaborator

BurpSuiteCollaborator是PortSwigger提供的⼀个托管⽹络服务,在⼿动测试中⾮常有⽤。

1/N当你不清楚⼿动注⼊的有效载荷是否触发了与其他⽹站的交互时,就可以使⽤Collaborator来验证。Collaborator功能默认使⽤的是

由PortSwigger托管的公共服务器。具体的⼯作原理如下图所⽰。

2/NCollaborator客户端的使⽤如下所⽰

1.启动Collaborator客户端

2.点击复制,将创建⼀个带有<>.域名的⾃定义URL。之后在payload中使⽤该URL

3.轮询以查看在URL上发出的请求。

4.⽤于请求的payload⽰例(这个案例中会产⽣DNS和HTTP两种请求)

3/N⼀些有⽤的场景

SQLi盲注

SSRF

XSS

BlindXXE

检测你能想到的任何出站的源负载

逃避防⽕墙,如果出站的TCP请求被阻⽌⽽HTTP被允许的话

2x20三步创建⼀个属于你⾃⼰的BurpExtender插件(Java类型)

从Burp->Extender->APIs->SaveInterfacefiles下载API接⼝。

创建⼀个名为burp的包,并将⽂件保存在那⾥,你可以选择任何你喜欢的IDE。

让IDE准备好构建JAR。

创建⽂件名为BurpExtender并添加以下代码。

创建⽂件名为BurpExtender并添加以下代码。

2/n

⽂件名BurpExtender将是你的插件的⼀个⼊⼝点,扩展接⼝在加载时在Burp中注册。该插件的所有逻辑都在这⾥。

构建Jar

在Burp中加载Jar。

3/n

你也可以⽤这些命令从命令⾏建⽴Jar。php代码位置->cdurcode*.class⽂件的位置->mkdirbuildjar的位置->mkdirbin编译代码->javac-

dbuildsrc/burp/*.java建⽴jar->jarcfbin/-Cbuildburp

2x21Autorize与IDOR(越权漏洞)

Autorize可以帮助你⾃动化的查找越权漏洞,基本的使⽤步骤如下:

1.⾸先在Autorize扩展中提供低权限/不同⽤户的cookie详细信息。

2.然后作为⾼权限⽤户使⽤浏览器并连接burp漫游并在易受攻击的⽹站上获取不同的资源。

3.对于您在站点上向⾼权限⽤户发出的每个请求,Autorize扩展都会使⽤给定的低权限cookie重复相同的请求。

4.最后,您可以检查Autorize扩展是否已使⽤低特权cookie请求访问了任何特权资源。如果是,那就找了⼀个越权漏洞。

参考链接:

2x22burp性能优化之最⼤限度地减少RAM和处理器的负荷

1.关闭你不⽤的burp扩展—只要禁⽤所有不使⽤的扩展,即使它们被加载,也会影响性能。

2.确定扫描仪的明确范围—你可以在配置中限制递归的深度

3.合并⽤于限定范围的正则表达式—如果你使⽤正则表达式来过滤流量,可以尝试将多个正则表达式合并为⼀个,性能上将会有所优

化。

搜索功能⽐⽹站地图过滤器更快

2x23通过代码层⾯的可视化来更好地理解BurpSuite中不同的intruder攻击类型

对于上⾯这个例⼦来说,如果我们想要去使⽤BurpSuite的Intruder模块去Fuzz那么我们就⾸先会⾯临四种类型的选择:

单⼀有效载荷集

相同的有效载荷⼀次适⽤于所有位置。

适合于每次对单个参数进⾏模糊处理,在针对所有具有共同漏洞的有效载荷时⾮常有⽤。

loc1⾸先⽤相同的数据进⾏测试,然后是loc2,以此类推…

⽤代码来表⽰就是

INGRAM

单⼀有效载荷

每个有效载荷同时放置在每个位置上

当攻击需要所有参数的相同输⼊时使⽤

RBOMB

每个位置都有不同的有效载荷集。

将此视为嵌套循环。对于locl的每个有效载荷,其他有效载荷的所有条⽬都被测试。(类似笛卡尔积)

ORK

每个位置都有不同的有效载荷集

但每个有效载荷都是同时递增的

2x24⼀种简单的在Android设备上安装证书的⽅式

Burp—>Proxy—>options—>import/export—>certificateinDERformat—>cert—>next—>save

nsslx509-informPEM-subject_hash_|9a5ba575.0#has

hfromtheabovecommandoutputadbshell"mount-orw,remount/system"adbpush9a5ba575.0system/etc/curity/cacerts/adbshell"chmod644system/

etc/curity/cacerts/9a5ba575.0"omount-oro,remount/systemadbremountadbreboot

本文发布于:2022-11-26 14:48:42,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/25735.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:allay
下一篇:future什么意思
标签:trick
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图