✎ 阅读须知
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!
本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!!
本文首发乌鸦安全知识星球!
说明
本文主要是参考以下两篇文章:
代码语言:javascript复制https://mp.weixin.qq.com/s/V0WdN9CMrTqo6qInuwyR6g
https://blog.gm7.org/个人知识库/01.渗透测试/06.保护自己/02.防止Burp被识别.html
为什么叫简单版本,因为在这里只是通过极简单的js操作进行识别,实际上真正的大厂识别方法中还可以通过BurpSuite
版本的JA3
指纹、端口连接是否被复用等技术(当然还有很多我不知道的技术,阿巴阿巴阿巴!)
1. Burpsuite特征
关于Burpsuite
来说,基本上是Web
选手的人手必备的工具,但是现在似乎发现某些站点在使用bp
的时候,无法对其抓包,甚至无法访问,这里面就可能被目标站点识别到了bp
的指纹信息,目标站点积极拒绝访问。本文使用Burpsuite
版本为2.1.06
本文只从简单的js
层面来讨论。
1.1 http://burp
其实关于Burpsuite
的特征来说,第一个就是http://burp
,当Burpsuite
在本地起来之后,随之也会起来一个http
的服务,当前的浏览器使用8080
端口(Burpsuite
的默认端口)的时候,就可以直接访问到这个页面:
显示网页源代码之后,可以发现更多的信息:
代码语言:javascript复制<html><head><title>Burp Suite Professional</title>
<style type="text/css">
body { background: #dedede; font-family: Arial, sans-serif; color: #404042; -webkit-font-smoothing: antialiased; }
#container { padding: 0 15px; margin: 10px auto; background-color: #ffffff; }
a { word-wrap: break-word; }
a:link, a:visited { color: #e06228; text-decoration: none; }
a:hover, a:active { color: #404042; text-decoration: underline; }
h1 { font-size: 1.6em; line-height: 1.2em; font-weight: normal; color: #404042; }
h2 { font-size: 1.3em; line-height: 1.2em; padding: 0; margin: 0.8em 0 0.3em 0; font-weight: normal; color: #404042;}
.title, .navbar { color: #ffffff; background: #e06228; padding: 10px 15px; margin: 0 -15px 10px -15px; overflow: hidden; }
.title h1 { color: #ffffff; padding: 0; margin: 0; font-size: 1.8em; }
div.navbar {position: absolute; top: 18px; right: 25px;}div.navbar ul {list-style-type: none; margin: 0; padding: 0;}
div.navbar li {display: inline; margi-left: 20px;}
div.navbar a {color: white; padding: 10px}
div.navbar a:hover, div.navbar a:active {text-decoration: none; background: #404042;}
</style>
</head>
<body>
<div id="container">
<div class="title"><h1>Burp Suite Professional</h1></div>
<div class="navbar"><ul>
<li><a href="/cert">CA Certificate</a></li>
</ul></div>
<p>Welcome to Burp Suite Professional.</p><p> </p>
</div>
</body>
</html>
1.2 http://burp/cert
在http://burp/cert
界面能够直接将证书下载下来:
1.3 http://burp/favicon.ico
在当前界面能够直接访问到Burpsuite
的ico
图标:
2. 识别方法
在第一节中提到了Burpsuite
的三个明显特征之后,如何去识别呢?在这里当然要通过js
识别。在这里有两种比较好的方法,但是实际上还存在其他的跨域执行方法。首先在靶机上准备一个http
的服务,在这里简单的准备一下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Burpsuite feature detection</title>
</head>
<body>
<h1>hello crow !</h1>
</body>
</html>
代码语言:javascript复制http://192.168.135.12/index.html
2.1 img标签
当从目标站点去访问访问者的站点的时候,需要跨域,一般的事件是不行的,所以在这里使用img
标签,img
标签中的img
其实是英文image
的缩写。所以img
标签的作用,就是告诉浏览器我们需要显示一张图片。在这里使用onload
来判断事件是否成功:
- •
onload
事件会在页面或图像加载完成后立即发生。 - •
onload
通常用于<body>
元素,在页面完全载入后(包括图片、css
文件等等。)执行脚本代码。
在刚刚的html
中加入下面的img
标签:
<img src="http://burp/favicon.ico" onload="alert('Burpsuite feature detection')" >
刷新之后,发现当前加载ico
文件成功,并且弹出警告信息。在这里可以使用一个简单的跳转防止起对网站的访问:
<img src="http://burp/favicon.ico" onload="parent.location='http://www.baidu.com'" >
当请求之后,会自动跳转到百度:
2.2 iframe标签的误区
iframe
是html
元素,用于在网页中内嵌另一个网页。
<iframe src="http://burp/" onload="alert('Burpsuite feature detection')"></iframe>
将其添加之后,同样能够检测到当前的Burpsuite
,但是这里是存在误区的:如果出现下面的这种图,并不一定代表确定是检测到了burp
:
比如将上面的代码稍微修改为baidu.com
试试:
<iframe src="http://www.baidu.com/" onload="alert('Burpsuite feature detection')"></iframe>
同样会弹出一模一样的界面,但是这并不代表此种方式有错误,这里主要要看报错内容:一个是百度的页面:
还有一个是burp的页面:
可以通过相关的关键字来进行判断。在下面的文章中,师傅对其进行了优化:
代码语言:javascript复制https://blog.gm7.org/个人知识库/01.渗透测试/06.保护自己/02.防止Burp被识别.html
将报错隐藏:
代码语言:javascript复制<iframe src="http://burp/" onload="alert('Burpsuite feature detection')" style="display: none;"></iframe>
但是这里和刚刚说的一样,貌似是错误的,因为当将错误隐藏的话,我们就没法使用报错字段来判断是否存在burp
了,比如将师傅的句子中的burp
修改为baidu.com
:
<iframe src="http://www.baidu.com/" onload="alert('Burpsuite feature detection')" style="display: none;"></iframe>
在这里看到当前请求了百度,但是依旧进行了弹窗,所以在这里这种方法貌似不严谨。
在这里主要为原因就是使用了onload
标签的问题,onload
标签的定义是:onload
事件会在页面或图像加载完成后立即发生。也就意味着是否加载了burp
,下面的弹窗情况都会发生。
3. Burpsuite简单去特征
3.1 禁止访问burp代理
在这里禁止访问burp
可以防止对方使用img
标签来访问ico
图标。
当设置之后,使用前面的img
标签试试:
<img src="http://burp/favicon.ico" onload="alert('Burpsuite feature detection')" >
此时无法请求burp
,获取不到ico
图标:
同理也可以防止iframe
标签,因为禁止访问了burp
,得不到报错之后的数据:
<iframe src="http://burp/" onload="alert('Burpsuite feature detection')"></iframe>
虽然依旧会弹窗,但是由于没有报错信息,因此无法判断当前是否加载了burp
。
3.2 配置Burpsuite权限
在Burpsuite
的Options
界面,关闭如下两个选项:
当没有在代理端配置禁止burp
访问的时候:
此时去访问http://burp/favicon.ico
此时已无法访问,在这里是Burpsuite
本身配置了防止Burp
的访问。再去访问img
标签下的值,此时发现burp
的状态码直接不再显示了:
4. 总结
以上两种方法均可在一定程度上防止Burpsuite
被识别到,可以二选一,也可以全选。
但是注意第二种方法在你重启bp
之后,还会失效,一定要注意下。
当然,通过流量层等其他方法还是会识别到Burpsuite
,后续有机会再学习下。