你之一次用expression方式来xss时,你肯定傻眼了,不停弹框,没法关闭浏览器,最终你只能祭出任务管理器将进程结束。也许你其他TAB页正有填到一半尚未提交的表单,你就这样被expression给日了,心里非常郁闷,于是就要想办法干它。
很多人之一反应就是cookie,没错这是个好办法:
<div style="width: expression(if(document.cookie.indexOf('xxxx')<0){alert(1);document.cookie='xxxx=1;'+document.cookie;})"></div>
不过这样写有个问题,就是被攻击者浏览器只能执行一次你的alert,cookie的作用域大于一次页面执行,适合用来做跨页面的标识,而不是仅仅用来控制一个页面里的某段代码的执行次数,而且你测试起来也挺麻烦,弄得不好就要清cookie。
循着这个思路很自然就会想到在页面里设置标识,于是就有了第二种 *** :
<div style="width: expression(if(!window.xxx){alert(1);window.xxx=1;})"></div>
使用全局变量来做标识,使我的代码在这个页面级别只执行一次,这样是一个比较完美的办法,也是目前被使用的最多的办法。
但是到这里总还觉得不爽,虽然我的alert只被执行了一次,但是判断代码还是在被不停的执行,我们还是在被它日,只不过感觉不出来而已了,我们的目标是日它,办法就是执行完我们的代码后删除这条expression,翻阅MSDN你很快能找到合适的 *** :
object.style.removeExpression(sPropertyName)
看起来很美,可是你把这个语句放进expression内部用它来删除expression自身却怎么也不能成功,该死的alert还是会一遍遍的弹出来。使用setTimeout延迟执行?失败;使用execScript在全局执行?失败;结合setTimeout和execScript在延迟在全局执行?还是失败;在body尾部append一个外部script来执行?失败;在body尾部append一个外部script并且setTimeout 延迟并且execScript全局执行?草,终于tmd成功了:
<!------1.htm------>
<html>
<style>
body {
width: expression(eval(String.fromCharCode(0x61,0x6C,0x65,0x72,0x74,0x28,0x31,0x29,0x3B,0x69,0x66,0x28,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x62,0x6F,0x64,0x79,0x29,0x7B,0x76,0x61,0x72,0x20,0x73,0x3D,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x28,0x22,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x29,0x3B,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x62,0x6F,0x64,0x79,0x2E,0x61,0x70,0x70,0x65,0x6E,0x64,0x43,0x68,0x69,0x6C,0x64,0x28,0x73,0x29,0x3B,0x73,0x2E,0x73,0x72,0x63,0x3D,0x22,0x31,0x2E,0x6A,0x73,0x22,0x3B,0x7D)));
/*alert(1);if(document.body){var s=document.createElement("script");document.body.appendChild(s);s.src="1.js";}*/
}
</style>
<body>
</body>
</html>
//--------1.js---------//
setTimeout(function(){execScript("document.body.style.removeExpression(\"width\")");}, 0);
可是还有那么一点不完美,就是无论怎么样,最少也要执行两次,不过我爽了,总算把这个expression给日了。当然如果你是个完美主义者,可以用这个 *** 结合if(!window.xxx)法。
各位看官看到这里,可能已经严重怀疑我是被虐狂,这么多 *** 测试下来,我还不弹框框弹到崩溃?其实我并非浪得虚名,测之前早有准备,先厚者脸皮去幻影邮件列表跪求alert框框原理,没想到大家非常热情地给予帮助,最终zzzevazzz大侠更先找到实现API是MessageBoxIndirectW,从 win2k源代码中觅得。然后又花上半日工夫草成一个hook MessageBoxIndirectW的小工具,可惜又遇到个小问题至今没有解决,这个函数的参数是个MSGBOXPARAMS结构体:
typedef struct {
UINT cbSize;
在网上下载顶尖数据恢复软件就是免费下载的,首先手机里的数据丢失了千万不要往里面写入新的数据然后用顶尖数据恢复软件来恢复。 恢复数据需要收费的。你可以用AneData全能文件恢复。硬盘或者u盘,手机中的...
本文目录一览: 1、如何防止网站被黑客攻击? 2、防范黑客的主要措施有哪些。急用。 3、怎么防御黑客攻击? 4、防止黑客攻击的方法有哪些? 如何防止网站被黑客攻击? 有时候我们经常会碰到...
目前深圳公司注册实行五证合一全流程网上办理,五证合一是指行营业执照、组织机构代码证、税务登记证、社会保险登记证和统计登记证,实现“一表申请,一门受理,信息共享”;同时,全面实施各类登记业务的“全流...
本文导读目录: 1、工厂怎么实现远程监控? 2、黑客是怎么监控电脑的呀? 3、特斯拉上海工厂摄像头被入侵,黑客为何敢这么明目张胆的入侵? 4、黑客 所谓的黑客远程控制别人的电脑,在别人的电...
家里有老人的家庭老人家在带孩子的时候认为给孩子经常带着尿布湿,对孩子不好。会给孩子把屎把尿。经常性的给孩子把屎把尿对孩子的脊椎和膀胱都有很大的伤害。要减少这个行为,那么给孩子把编把尿有什么危害呢,下面...
上期推广项目都是游戏类,今天看来还得继续,斗地主,打鱼,打飞机等等。这类游戏基本都是针对新用户免费赠予一块两块,约请奖励也不错,目的是为了拉到一些优质用户,说白了就氪金大佬,来送钱的,谁又会不喜欢吗?...