关于一个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] 黑客接单网
在曩昔的几个月里,咱们做了一些有关创立网络垂钓电子邮件的研讨,这些创立的垂钓邮件足以诈骗那些专业的安全人员。因而,咱们正在研讨一个适当陈旧的安全论题:Punycode域和IDN同形异义词进犯。 Pun...
假如你长时刻混迹于暗码破解的第一线,那么就十分清楚破解相同内容的不同文件格局对破解的速度的影响是十分大的。例如,破解维护RAR文档暗码所需的时刻是破解具有相同内容的ZIP文档暗码的十倍,而破解保存在O...
本地文件包括(LFI)缝隙,常被入侵者用来提取站点地点服务器上的不同文件内容,如passwd,hosts等。但你有没有想过将它提升到另一个层级?即经过本地文件包括来获取服务器上的浏览器shell(c9...
Web运用防火墙一般会被布置在Web客户端与Web服务器之间,以过滤来自服务器的歹意流量。而作为一名浸透测验人员,想要更好的打破方针体系,就有必要要了解方针体系的WAF规矩。现在,许多WAF都是根据签...
0×01 前语 前几天刚见人发了一个登录框引发的血案,而惯例的爆炸有风控和各种反常验证码,或许大型的电商都会用SSO完成登录,密码找回逻辑看似天衣无缝,又或许选用第三方的Oauth授权。往往这些惯例的...
电子商务、移动付出的遍及,顾客越来越少随身携带现金,人们玩笑道“小偷都快赋闲了”。但在互联网上,靠偷盗用户电子账户资金、虚拟财物的“网络小偷”却非常猖狂。 各种途径走漏的个人信息被加工、转卖,并用于电...