关于一个Web开发人员来说,Fiddler并不生疏。作为一款Web调试利器,它具有强壮的调试功用,灵敏的装备以及丰厚的可扩展功用。我在开发工作中,最喜爱的便是它的Inspectors和AutoResponder功用。别的,它能够解密HTTPS数据,支撑反向署理,也可用于中间人进犯。
关于一个对代码有洁癖的人来说,不仅在代码格局上有严厉的要求,对代码的健壮性,安全性相同严苛。因而,就连小小的(Full path disclosure)爆物理途径的bug也不容许存在。
当我是coder的时分,我用的东西是Fiddler,当我是一个hacker的时分,我用的是burp suite。由于我对java 没有一点好感,也对它不甚了解。所以我挑选开发一个Fiddler插件协助我检查出web体系中存在的爆途径页面。个人认为, Fiddler比burp suite更”接地气”。
开发的言语我挑选的是.NET言语中的C#。原因是Fiddler自身便是用C#编写,它对.NET的扩展有杰出的支撑。
规划原理与思路
规划这个插件的原理是这姿态的:在php中,有这样一些不安全的特性,比方htmlspecialchars这个函数,许多coder喜爱用这个函数来过滤用户的输入,测验代码如下:
php
echo htmlspecialchars($_GET['param1']);
?>
当咱们结构这样一个url时,http://localhost/test.php?param=1就会发现页面爆途径了。
看图:
报错级别为正告,具体原因是说,htmlspecialchars这个函数需求的是string 而你却插入了一个array。紧接着后边就爆出了物理途径。
在php中类似于htmlspecialchars由于传入一个数组而爆途径的函数有许多。像trim等操作字符串的函数。或许这样一个小小的bug只需求一个简略粗犷,快速有用的办法即可完美搞定。那便是在php文件最初增加
php
error_reporting(0);
......
?>
即可。但是形似许多闻名的CMS却不会挑选这种办法。
插件处理恳求的大体思路是这姿态的,看下图:
到此,咱们现已搞清楚了规划原理和规划思路。接下来就开端编写这个插件吧。
编写插件
在编写插件前,首先要搞清楚开发Fiddler插件的接口。
具体的阐明能够参阅Fiddler官网。http://docs.telerik.com/fiddler/Extend-Fiddler/ExtendWithDotNet
官方阐明文档并未具体解说Fiddler插件开发的一些细节。只能经过Reflector东西反编译Fiddler库,或许直接运用Visual Studio引证Fiddler库,检查其内部完成的细节。
当然咱们最需求搞清楚这几个接口办法就行了,如下:
public void OnLoad(){
/* 在这编写加载插件是需求履行的code 如加载UI */ }
public void OnBeforeUnload() {
/*编写在unload插件之前所要履行的code*/ }
public void AutoTamperRequestBefore(Session oSession){
/*在这编写恳求之前需求履行的code */}
public void AutoTamperRequestAfter(Session oSession){
/*在这编写恳求之后需求履行的code */}
public void AutoTamperResponseBefore(Session oSession){
/*在这编写呼应之前需求履行的code */}
public void AutoTamperResponseAfter(Session oSession){
/*在这编写呼应之后需求履行的code */}
public void OnBeforeReturningError(Session oSession){
/*在这编写有过错回来时需求履行的code */}
翻开visual studio 2013 新建Visual C#项目,项目类型挑选类库(library),.NET Framework版别依据所要开发的插件的功用挑选吧。
树立项目后有以下几个工作要做:
1.增加引证,将Fiddler库和Forms程序集加入到project中。
2.主张增加一个类,用于UI的规划和加载以及相关控件的事情处理。
3.为了便利调试,在项目特点的生成事情中,将编译好的dll复制到Fiddler的插件目录。
插件目录阐明:
一般来说用户自界说的插件主张放在: %userprofile%DocumentsFiddler2Scripts中。
当然你也能够放在Fiddler装置目录下的Scripts文件夹中。
如下图:
UserInterface类的代码如下:
class UserInterface : UserControl
{
private TabPage tabPage; //增加一个标签页 用来放置控件
private CheckBox chkb_Enabled; //用来启用或禁用插件
private TextBox textBox_Result; //用来保存最终的成果
private Button btn_Clear; //清空按钮
public bool bEnabled;
public delegate void Delegate_AddResult(string strUrl);//界说输出成果的托付
[1] [2] [3] [4] [5] 黑客接单网
以比特币为首的P2P虚拟钱银推翻了人们对钱银的认知,也为网上生意供给了新的途径。近几年来,虚拟钱银付出以其去中心化、匿名性等特色深受欢迎,活泼在各个领域,涵盖了电商、慈悲安排、企业院校等合法组织,当然...
各位在企业中做Web缝隙扫描或许浸透测验的朋友,或许会常常遇到需求对图形验证码进行程序辨认的需求。许多时分验证码分明很简略(关于非互联网企业,或许企业界网中的运用来说特别如此),但由于没有趁手的辨认...
今日我将给我们演示我是怎么处理VulnHub挑战赛这道名为Pipe标题的。 当然CTF玩的便是思路,这篇文章的思路纷歧定是最好的。只是作为抛砖,欢迎我们在文尾下载这道标题来玩! 枚举 PORT ...
在布置蜜罐之后,会发作很多的日志,关于要挟情报而言,咱们需求经过这些日志来提取其间的有用的数据,本文将会描述提取那些数据用来完结剖析。 布置蜜罐之后会生成描述发作的事情的日志记载。能够收集到的安全事情...
实践中,面向公共互联网供给服务的体系或服务器,都是处于边际方位的。所以无论是物联网设备仍是企业级服务器,只要能被外界访问到,那就会无时无刻被进犯。 最近,咱们发现了一种进犯方法,多个公司Apache...
1.1变化: 添加过滤设置 优化显现成果 添加运转提示信息 添加域名正则匹配 整个插件分为三个面板:使命面板、sqlmapapi参数装备面板、过滤条件面板。 使命面板 Server : SQLmap...