如下:
其中表单中price是隐藏字段,我们需要实现编辑操作。
方法1.
保存html页面的源代码,编辑字段的值,然后将源代码重新载入浏览器,并单击按钮。
方法2.
使用拦截代理服务器(如:burp suite)对数据进行动态修改更加简单方便。
与隐藏表单字段一样, **方法:** 使用拦截代理服务器,通过更改设置cookie的服务器响应或随后发布这些cookie的客户端请求,对http cookie进行修改。3.URL参数
如遇到以下情况:
情况1
http://mdsec.net/shop?prod=3&pricecode=32
包含参数的url 显示在浏览器的地址栏中,不用工具可以直接进行修改。
情况2
1.使用包含参数的url加载嵌入图像时;
2.使用包含参数的url加载框架内容时;
3.表单使用post方法并且其目标url包含预先设定的参数时;
4.应用程序使用弹窗口或其他方法隐藏浏览器修改上面的任何url参数。
**使用burp suite 进行拦截即可修改。**4.Referer消息头
开发者认为:referer消息头可用于准确判断某个特殊的请求由哪个url生成。
同上可以使用burp suite进行拦截,修改参数。5.模糊数据
如上面的value中的值就是需要解密或去模糊处理,然后处理它的明文值。
6.ASP.net viewStateasp.net viewstate 是一种通过客户端传送模糊数据的常用机制。 服务器通过它在连续的提交请求的过程中保存用户界面中的元素,而不需要在服务器端维护所有相关的状态信息。 方法:burp suite 中提供了一个指示viewstate 是否受MAC保护的viewstate解析器。如果未受到保护,可以使用它进行编辑viewstate内容。二、收集用户数据:HTML表单 1.长度限制
如下:
Quantity:
html中表单中的quantity字段的最大长度为1。
方法:
使用burp suite 进行拦截进行参数值修改,或者删除maxlength参数。
在表单提交时,使用JS函数进行判定是否符合定义的要求。
方法1
在浏览器中禁用js,就可以破解;
方法2
如果采用方法1,导致终止应用程序,使用代理服务器拦截确认后提交表单,并将其中的数据修改为想要的值。
html表单中的元素是disable---禁用,显示会是灰色的,无法编辑和使用,提交表单时,表单也不会向服务器传送这个元素。 方法 使用burp suite进行拦截进行添加,尝试服务器的响应是否正常。三、收集用户数据:浏览器扩展 1.常见的浏览器扩展技术
Java、Flash、Silverlight 它们均编译成中间字节码; 它们在提供沙盒执行环境的虚拟机中进行; 它们可能会使用远程框架,这类框架采用序列化来传输复杂的数据结构,或通过HTTP传送对象。2.攻击浏览器扩展的方法
方法1
可以拦截并修改浏览器扩展组件提出的请求及服务器的响应。
方法2
可以直接针对组件实施攻击,并尝试反编译它的字节码,以查看其源代码;或者使用调试器与组件进行动态交互。
1.处理序列化数据 根据所采用的客户端组件推断出相关数据的序列化格式,但是任何时候,仔细检查相关HTTP消息才能确认序列化格式。 Java序列化 Content-Type:application/x-java-serialized-object Dser时burp suite中的插件,提供一个框架,可用于查看和处理Burp拦截的Java序列化对象。该工具将对象的中给原始数据转换为xml格式,便于编辑。 Flash序列化 Content-type:application/x-amf burp中支持AMF格式,确定包含序列化AMF数据的HTTP请求或响应后,会解压缩并以树状形式显示相关内容。 Silverlight序列化 Content-type:application/soap+msbn1 Burp Proxy中的一个插件能够自动对NBFS编辑的数据进行去序列化,然后在burp中的拦截窗口中显示这些数据。
2.拦截浏览器扩展流量时遇到的障碍
问题1 客户端组件可能并不执行在浏览器或计算机的设置中指定的代理配置。 方法 修改计算机的hosts文件以实现拦截的目的,同时向代理服务器配置为支持匿名代理,并自动重定向到正确的目标主机。 问题2 客户端组件可能不接受拦截代理服务器提供的SSL证书。 方法 将代理服务器配置为使用一个主CA证书,并在计算机的可信证书库中安装该CA证书。
可使用如:网络嗅探器,Echo Mirage
能够注入进程并拦截套接字API调用,以便查看,修改数据。
在对浏览器扩展组件实施攻击时,最彻底的方法,是反编译对象、对源代码进行全面分析,修改源代码以改变对象的行为,然后重新编译源代码。
1.下载字节码 第一步,下载要处理的可执行的字节码。 Java applet通常使用的标签加载,其他组件则是使用5.附加调试器
要了解和攻击浏览器扩展,反编译时最全面可靠的方法。
问题:
对于大型项目代码复杂度大
方法:
采用观察组件的执行过程,并将其中的方法和类与界面中的关键功能进行关联,往往会更加简单。 只需要执行某项关键功能,更改其行为,以消除在组件中实施的控件,即可。
其中JavaSnoop是Java applet调试器,还能与jad进行集成。
OllyDbg 是一个可用于遍历本地可执行代码、设置断点,并在磁盘上或在运行时对可执行文件应用补丁的Windows调式器。
IDA Pro是一个反汇编程序,它可以将大量平台上的本地可执行代码反汇编成人类可读的汇编代码。
四、安全处理客户端数据 1.通过客户端传送数据由于客户端组件和用户输入不在服务器的直接控制范围内,从本质上讲都不值得信任。
一种:
应用程序应完全避免通过客户端传送关键数据,将这关键数据保存在服务器上,并在必要时通过服务器逻辑直接引用。
二种:
签名或加密数据可能易受重传攻击;
知道并或能够控制送交它们的加密字符串的明文值,那么我们可以使用密码攻击,找出服务器使用的加密密钥。
从理论上讲,客户端无法安全确认由客户端生成并且向服务器传送的数据。
原因:
(1)可轻易避开http表单字段和JavaScript之类的轻量级客户端控件,无法保障服务器收到的输入的安全性。
(2)在浏览器扩展组件中执行的控件有时更难以避开,但这种控件只能暂时阻止攻击者入侵。
(3)使用经强化模糊处理或压缩的客户端代码增添了另一层障碍,但是蓄意攻击者还是能够克服这些障碍。
方法
在应用程序的服务器端实施保护,客户端提交的每一项数据都应该视为危险和潜在恶意的。
应用程序虽然采用长度限制和基于JavaScript的确认之类的机制来提高性能与可用性,但这些机制应与服务器端入侵防御工具组合使用。实时发出警报,以便与管理员进行及时处理,应用程序还会主动采取防御措施,终止用户会话或者暂时冻结其账户。



