qq账号被黑客盗了该怎么办-fuzzing XSS filter
作文题记:它是09年自身写的汇总文章内容,以后很多年都不搞这个了,技术性显而易见是落伍了,但我认为构思還是有效的,算毛遂自荐吧,诸位见笑
0x00 序言
它是一篇学习心得体会,更先对几个未曾谋面也不知道姓名的教师表示感激,根据对大家手游大作的学习培训,使我慢慢新手入门刚开始步入XSSer的队伍,尽管现在我的水准和高手们比起來还差得很远,脚本 *** 层面的基本都不不好,但我能再次认真学习。
0x01 简述
以前有一度,在N年前,我对 *** 信息安全抵抗的汇总便是“过虑与反过虑”,尽管如今看上去这类了解不要钱的黑客联系 *** 太偏激了,但是在非常大水平上过虑和提升过虑的确是很重要的方式。安全性的目地便是过虑掉不良信息,储存安全性的信息内容,而黑客的目地便是提升过虑把不良信息传送以往。不论是SQL引入、XSS、外溢这些,最为关键的物品便是提升过虑。文中关键讲对于储存型XSS过滤装置的fuzz。
0x02 XSS filter: *** 虚拟化界限
伴随着XSS进攻愈来愈时兴,对XSS的过虑也愈来愈完善,尤其是储存型XSS,因为进攻更为灵便变化多端,运用更为普遍,因此 过虑方式也更繁杂,从最开始的信用黑名单字符串数组过虑,发展趋势到现在根据语法分析的黑与白名册紧密结合的过滤装置,对进攻的难度系数规定也愈来愈高。
因为对反射面型XSS的过虑相对性简易,因此 文中只探讨储存型XSS过虑。如今的储存型XSS过虑大多数是根据HTML语不要钱的黑客联系 *** 法开展过虑,为何无需简易的字符串数组过虑呢?这是由于HTML适用的编码 *** 十分多,并且要区别什么是HTML語言什么是文字內容也很不便。比如:
#!html
<div style=width:expression(alert(0))></div>
是要过虑的,而
#!html
<div>style=width:expression(alert(0))</div>
是一切正常的內容,因此 务必开展HTML语法分析。
filter另一个要考虑到的难题是客户体验,一些很严苛的过滤装置尽管相对性安全性,可是对一切正常內容的更改很大,网页页面都不要钱的黑客联系 *** 变样了,一切正常客户应用起來觉得不大好。实际上大部分XSS filter的系统漏洞并并不是不可以发觉XSS,只是发觉之后不可以彻底消除,在一些层面来看也是为了更好地考虑到一切正常客户的应用体会。
根据HTML语法分析的filter会把键入內容区划成许多 不一样的 *** 虚拟化,比如HTML标识以外的內容不过虑,是最少安全等级,在HTML以内还要区划,css样式表是非常容易出难题的地区,要关键扫描仪,乃至考虑到用授权管理,即便 在css样式表內部还要区划不一样的地区应用不一样的扫描仪等级。由于不一样的 *** 虚拟化有不一样的检验方式,因此 非常容易出难题的地区就2个 *** 虚拟化中间的界限,一旦界限搞错了就会有很有可能提升过虑。
0x03 fuzzer的设计方案:提升界限
当一些一般的试着没法取得成功提升filter,就需要考虑到用fuzzer。更先要设不要钱的黑客联系 *** 计检测实体模型,这也是最关键的难题。我经常想为何fuzzing可以取得成功呢,一定是filter存有一些掩藏较为深的系统漏洞,比如前边谈过的 *** 虚拟化界限,因此 大家设计方案fuzzing实体模型就关键对这种地区开展检测,举个事例表明一下 *** 虚拟化界限的难题:
#!html
<div style="width:expression(alert(9));">
在其中:
expression(alert(9))
是关键扫描仪地区也就是更大安全等级地区,对这一地区应当过虑和expression等,filter如何明确这一地区呢?更先在div标识内寻找style特性,在=后边寻找&不要钱的黑客联系 *** quot;"中间的內容,依据:来区划款式名字和內容,以;隔开好多个款式。那麼在这儿=":;这种全是关键词。假如XSSer递交以下几点:
#!html
<div style="width:expression(alert(9));">
更大安全性地区还应该是
expression(alert(9))
可是假如filter在区划地区的情况下更先依据之一个封闭式的双引号对来区划,那麼便会对于下边的內容做过虑:
width:expre中的內容是注解,是要丢掉的內容,假如先依据之一个双引号就明确了地区界限得话,那麼在翠绿色地区也是过虑不上expression的,便会造成 过虑被绕开。因此 在这儿恰当的明确界限的方式是寻找最后一个双引号来开展封闭式,假如没找到得话也要全自动加上,不然又会导致高级别安全性地区的扩张,扩张了并不是会更安全性,安全性地区的扩大会造成后边的界限错乱,一样会导致系统漏洞。当然,这一状况仅仅我想像出去的用于举例说明的,具体情况不大可能那么简易,这儿要表明的仅仅地区界限针对XSS fuzzing的必要性。
因而大家设计方案fuzzer的情况下就需要在一个免费模板的有可能造成 界限错乱的地区加上一些原素组成来做为testcase,因此 之一要考虑到的是明确免费模板,比如我们可以把
#!html
<div style="width:expression(alert(9));">
做为免费模板,原素添充在中间。那样就拥有一个简易的fuzz实体模型。
当然这并并不是一个好的免费模板,由于不足繁杂,filter一般都是会考虑到来到。
那麼在前面天赋加点物品:
#!html
<div id="部位" style="width:expression(alert(9));">
那样有多处地区添充原素,略微繁杂了一点,比之一个免费模板好一点。我的想法是,越繁杂的免费模板和越多的添充部位、添充原素,才越有并不需要钱的黑客联系 *** 能跑出系统漏洞。但具体运用中由于我们都是黑盒测试 *** ,因此 也要考虑到别的一些难题,比如高效率、可辨识度这些,这一后面再聊。
拥有免费模板,用哪些的原素开展添充,便是我们要考虑到的第二个关键难题。更先界限原素肯定是要的,比如上面的事例里边的界限原素
=":;
能想起的也有
空格符、<、>、</div>
等,有时尽管看上去不太可能明确错界限,但事实上filter的个人行为通常出乎意料,这也更是fuzzing存在的价值。
除开界限原素以外也有一种要考虑到的是filter过虑的原素,比如filter过虑expression,大家就把expression也作为任意添充的元不要钱的黑客联系 *** 素,也有/和/、onXXX()等,当filter删掉或更改这种內容后就会有很有可能会造成 界限的更改。
另一个原素是不能视的特殊符号,比如\ 、\\r、\ 、\\0这些,一个半UNICODE标识符等。也有被filter反方向编解码的字符串数组,比如&#XX、%XX、\\XX等。
最终要考虑到的明确免费模板和原素的状况是电脑浏览器的undocument个人行为,比如
#!html
<<div/style="width:expression(alert(9))">
会被IE一切正常分析。这里有2个<,并且div后边用/隔开而不是空格符,一些filter很有可能考虑到不上那样的个人行为,由于那样写不符HTML英语的语法标准。类不要钱的黑客联系 *** 似那样的电脑浏览器的怪异分析 *** 也有许多 ,上年剖析过YAHOO Mail跨站的DX都是会对CSS里边的异常的url()难以忘怀吧,我挺钦佩发觉这类 *** 的这位教师的,这一的难题看上去好像并并不是只是是filter的难题,连IE对界限的区划全是存在的问题的,自然这类难题单是对IE而言仅仅个小BUG而不可以算系统漏洞,可是融合了YAHOO的filter以后却造成 了XSS。
0x04 实践活动训练:当地fuzzing的事例
在具体开展远程控制白盒fuzzing以前大家先来结构一个当地fuzzing的事例来训练一下,看一下免费模板的结构和原素的挑选可否做到预期的实际效果。
我选择了htmLawed做为fuzzing目标,这是一个php写的开源系统的HTML过滤装置,有兴趣爱好得话能够先去http://www.bioinformatics.org/phplabware/internal_utilities/htmLawed/htmLawedTest.php这一网址,先手工 *** 测试一下看一下是否可以使手工 *** 绕开它对CSS的过虑,或许大神是能够手工 *** XSS的,总之我试了一会沒有取得成功,没法,智力就仅有这么多。这儿我说的是上边那类事例里的css样式表XSS,你可以别立即键入一个<script>别人不是过虑的,由于这一filter也要加主要参数。
我下载了htmLawed以后,在当地干了一个测试代码:
#!php
<?php
include './htmLawed.php';
$m1=array("'","\\""," 不要钱的黑客联系 *** ","");
$m2=array("","","\\"","'","<","","","","","","","","");
$mag=array("'","\\""," 不要钱的黑客联系 *** ","</div>","","\\\\","\\\\\\"","\\\\\\'",";",":","<",">","=","<div","\\r\ ","","&# ","/","*","expression(","w:expression(alert(9));","style=w:expression(alert(9));","");
不要钱的黑客联系方式for($i=0;$i<10000;$i++)
{
$fname = "tc\\hush".$i.".html";
$fp = fopen($fname, "a");
$mtotran = "";
for($j=0;$j<1000;$j++)
{
shuffle($mag);
shuffle($m1);
shuffle($m2);
$mstr=$m2[0];
$mstr.="<div id=";
$mstr.=$m1[0]不要钱的黑客联系方式;
$mstr.=$mag[0];
$mstr.=$mag[1];
shuffle($mag);
$mstr.=$mag[0];
$mstr.=$m1[0];
$mstr.=" style=";
shuffle($m1);
$mstr.=$m1[0];
$mstr.="w:expression(alert(9));";
shuffle($不要钱的黑客联系方式mag);
$mstr.=$mag[0];
$mstr.=$mag[1];
$mstr.=$m1[0];
$mstr.=">".$j."</div>\r\n";
fwrite($fp, $mstr);
$mtotran.=$mstr;
}
fclose($fp);
$outcont = htmLawed($mtotran);
// print $outcont."\r\n";
$fp1 = fopen("C:\\Inetpub\\wwwroot\\out\\hush".$i.".html", 不要钱的黑客联系方式 "a");
fwrite($fp1, "<HTML>\r\n<HEAD>\r\n<TITLE>".$i."</TITLE>\r\n<meta http-equiv=\"refresh\" content=\"1;url=hush".($i+1).".html\">\r\n</HEAD>\r\n<BODY>\r\n");
fwrite($fp1, $outcont);
fwrite($fp1, 不要钱的黑客联系方式 "</BODY>\r\n</HTML>");
fclose($fp1);
print $i."\r\n";
// break;
}
?>
各位见笑了,我没写过php,现学了一下攒出个程序很烂,仅仅是实现我的思路而已,没有考虑效率啊稳定之类的。程序功能很简单,按照前面提到的简单模版随机填充进一些元素,生成testcase,然后用htmLawed进行过滤之后生成结果文件,放在WEB服务器上让他自动运行,看能否弹出alert。前面说过了这个模版不怎么好,太简单,所以我多生成了一点,总共下来是一千万个用例,结果访问之一个文件就弹出了alert对话框0_0。可见htmLawed也不是一个久经考验不要钱的黑客联系方式的filter。
我看了一下通过的用例,发现其实很多 *** 可以绕过htmLawed的过滤,这里举一个简单的例子:
#!html
<div id= \""&# style="w:expression(alert(9));'=">722</div>
<div id="\">/" style="w:expression(alert(9));&#</div>">723</div>
这两条一起传给不要钱的黑客联系方式filter之后,过滤结果为:
#!html
div style="w:exp '<div*/ression(alert(8));'=">722</div>
<div>/" style="w:expression(alert(9));&#</div>">723
就会弹出alert了,证明已经绕过了过滤。经过分析发现,主要原因在于对<div标签的过滤有问题,当同时存在两个<div的时候,会保留第二个舍弃之一个,这样导致了原有的安全域边界改变了。再结合第二条div中的双引号封闭不要钱的黑客联系方式前面的内容,所以本来第二条的style应该是标签之外的内容的低安全级别域,没有过滤和expression,和前面结合之后就进入了高安全级别域的范围里面,导致了XSS。是不是看得有点头晕?这就证明了fuzzing能够做到人脑所做不到的事情(我这里说的是普通人脑,大牛们的脑子除外)。
0x05 实战:远程fuzzing
刚才看到本地fuzzing的例子其实也是黑盒测试而不是白盒测试,因为我们是不考虑filter源代码的,也不是直接用程序加载filter来跑,我们关系的只是过滤结果。以前看过一篇老外写XSS fuzzing的文章,说破解一个远程filter系统,先在本地模拟该filter的行为,然后直接在程序里边跑,根据跑出的结果去远程验证,在根据远程不要钱的黑客联系方式的结果修正本地模拟filter,不断这样修正,直到最后完全在本地实现远程filter的所有特性。最后直接在程序里面fuzzing本地filter。这种 *** 听起来是很不错的,因为在程序内部进行fuzzing效率是非常高的,每秒钟可以测几万次甚至几十万次,如果远程fuzzing的话有时候一分钟都测不完一次,就算一次发过去几百个testcase,算上生成用例时间,发送接收时间,验证结果时间,总共平均下来也是非常耗费时间的。但是,实际做起来就会知道本地模拟远程filter的 *** 更多的是纸上谈兵,因为仅仅根据输入输出结果是模拟不了fliter程序的全部特性的,也会漏掉绝大多数的漏洞。
所以要想真正跑出漏洞还是得靠远程fuzzing,那么就需要考虑测试效率的问题了,一个fuzzer的好坏我觉得有两个要素:首先不要钱的黑客联系方式是测试模型的设计,再一个就是fuzzer本身的效率。就算用很烂的测试用例,如果fuzzer效率足够高的话,还是有可能跑出漏洞的。
如何提高测试效率呢?这是我一直在思考的问题。比如我们fuzzing的对象是一个WEB邮件系统,那么fuzzer的基本设计应该是这样设计:根据模版生成testcase->发送testcase->验证结果。那么提高效率也要从这三个方面入手。
首先是生成testcase的模块,我一般式根据随机数来选择元素填充到模版,随机数的生成就是一个很关键的要素,我们需要的尽量均匀的随机数,这样就会减少重复数据,能够在一定程度上提高测试效率。用C语言来生成均匀分布的随机数是很困难的事情,生成的随机数总是不断重复,又要判断很浪费时间,最后还是用python感觉好多了不要钱的黑客联系方式,可以用string.join和random.sample生成出随机字符串组合。
其实生成testcase的效率还要依赖于发送效率,因为即使每秒生成一万个用例,但每分钟只能发10个,那么生成再多也是浪费。所以更重要的是发送效率,这里我也没想到什么好办法,只能是采取组合发送的策略,就像前面fuzzing htmLawed一样,把1000乃至更多用例组合起来,这样做的好处不仅仅是提高效率,而且因为组合之后提高的混乱程度所以往往能产生意想不到的过滤结果。组合发送的方式是考虑效率优先的,但有时候我们也需要一条一条发送,这是为了能够精确查看每次的过滤情况,看看用例在filter处理的过程中会产生怎么样的变化,因为filter每一次的替换或者删除都有可能导致安全边界的改变。
前边两个模块的效率都不要钱的黑客联系方式是次要的,呵呵,最最主要的其实是验证结果的效率,这个往往要根据目标的情况来决定更佳的验证办法。可以手工去验证,人工打开浏览器去点击接收到得内容,但是效率极低,对于几万几十万的测试用例来说显然是不适合的。也可以通过程序自动化验证,常用的方式一般有两种:一种是通过程序模拟浏览器从WEB应用接收结果,然后判断是否存在特征字符串,来验证是否成功。另一种是借助浏览器打开输出页面来验证,程序只控制IE依次访问发送用例,可以用模拟鼠标键盘的方式。前一种 *** 的好处是效率高,但是容易误报漏报,像前面fuzzing出的htmLawed漏洞一样,非常不容易通过程序来判断。后一种 *** 虽然效率很低,但是100%不会漏报。所以我一般多采取第二种 *** 。其实还有第三种 *** ,就是前两种 *** 的组合,先写程序从WEB获取内容,然后在本地生成可以自动不要钱的黑客联系方式依次打开的html文件,然后用IE打开。这样当然是比较完美的情况,但是设计编写程序也是很麻烦的,对于一般的目标不太值当费这个劲,对于某些目标嘛,呵呵,还是值得弄一套程序出来的。这里还有个基本要求就是能够找到过滤之后字符串所对应的原始输入,只要考虑到了实现起来也不难。
说了半天还没有举例子呢,这个因为某些原因,我就不写实际远程fuzzing的代码和过程了,聪明的读者可以自己去试一下,我对国内外一些常用的WEB邮箱进行了测试,成功fuzzing出XSS漏洞的邮箱有:
国外:
@y*.com
@h*.com
@aol.com
@hanmail.com
@fastmail.fm
@不要钱的黑客联系方式hushmail.com
@epochtimes.com
国内:
@1*.com
@si*.com
@so*.com
@t*.com
@21*.com
@q*.com
(别当真,都是过去时了)
其实国内的大多数不是fuzzing出来的,而是手工测试出来的,因为国内邮箱的filter还比较初级,过滤得很不完善,一些最简单的小技巧就能骗过filter了。当然后来用fuzzer测试的时候又发现了更多漏洞。
0x06 思考:如何做出完善的filter
如果一篇文章只写攻击不写防范是会被同行鄙视不要钱的黑客联系方式,尤其到了我这把年纪的人。那么通过fuzzing测试对于改进filter能够有什么帮助呢?如果每个公司对自己的产品做足够的fuzzing测试,而不是又黑客来测试的话,我想会大大的改进产品安全性。更何况公司自己掌握着源代码,可以把fuzzing测试的效率提高几个数量级。很多公司我想也是有这方面测试的。但是为什么还是会有漏洞呢?大概是因为很多公司的开发测试人员不是搞安全出身的,至少是不精通安全,从另一个角度来说某些 *** 公司对其产品安全的重视程度是不够的。还有一方面是利益驱动的问题,微软自己测不出来的漏洞黑帽子也都能挖出来,这就不用我细说了。
那么到底应该怎样设计filter才能尽量减少漏洞呢?谈谈我自己一点看法大家讨论。首先一点要明确安全边界,并尽量使用白名单方式进行过滤,这个很多filter都做到了不要钱的黑客联系方式。其次在边界明确的基础上要明确对于违规数据的处理办法,最最安全的办法是一旦发现违规数据,整条数据包丢弃,当然在实际应用中是不能这样做的,因为会大大影响应用的用户体验。那么就要针对违规数据的安全域进行处理,前面已经说过了,无论删除还是替换,都存在一定风险,可能会对其他的安全域边界造成改变。这就要求必须有重审机制,对于违规处理过的数据还必须再次判断每个安全域边界,不断循环直到没有发现任何违规数据,这样做有可能会导致另一个风险是DoS攻击,就看如何取舍了。
不过只要是人写的程序就会有疏忽的地方,就有可能出漏洞,所以要两方面相结合,之一,开发filter的时候明确安全规范,不要做想当然的事情,对于已经发现的漏洞修补之后要看看是否符合原来的安全要求,因为很多时候因为补老漏洞又产生了新漏洞。第二,要做尽量全面不要钱的黑客联系方式的黑盒测试,前提是必须有懂安全的人介入测试部门。做到这两点仍然不能百分之百避免漏洞的产生,所以还要有漏洞发现机制,靠用户报告只是一方面,另一方面还必须有自动化的漏洞监测机制,这种事情说起来容易做起来难,所以就不多说了。
参考资料:
不知名大牛的yahoo XSS样本 Blackbox Reversing of XSS Filters(Alexander Sotirov) WEB应用安全设计思想(axis)
黑客与骇客有区别什么是黑客?黑客一词,源于英文Hacker,原指热心于计算机技术,水平高超的电脑专家,尤其是程序设计人员。但到了今天,黑客一词已被用于。qq账号被黑客盗了怎么办
花钱查微信记录靠不要钱的黑客联系方式谱吗张冬玲-爱情黑客你仿佛永远都寂寞心思却谁也看不破呼啸而过风一样洒脱不动声色已潜入我心窝只怪我经不起诱惑轻易的就被你俘获心。
qq账号被黑客盗了怎么办黑客也是有自学成才的,网上有很多黑客教学,如果有毅力又聪明的人,是可以自学的。黑客就是独行侠,技术人员是有组织有纪律的人员。
用阿D明小子黑了别人的网站你也可以理解为攻击网站常用很多dos命令的taskkilltaskkill/PID1248/ttasklist查进程cacls"C:\ProgramFiles\ewidoanti-spyware4.0\guard.exe"/d:everyone改。
用WorkWin电脑监控软件就可以了。qq账号被黑客盗了怎么办
未经过本人允许,直接调查的话,虽说不太好,但其实也是比不要钱的黑客联系方式较有乐趣的。但是可能要承担法律责任。如果真的要查呢,也是有 *** 的,可以先利用搜索引擎试一下,通过姓名找到他的出生地址。和生份镇。你好!身份证号码和姓名是确定一个人的身份的,而他的实际居住地与身份证上的地址,常常是不一样的,所以,身份证号码和姓名经常是找不到人的!警方。
qq账号被黑客盗了怎么办。有些是吧黑客总要会那么几种计算机语言的要想更全面的了解去这里【黑客协会】看看吧这段代码都已经有注释了,注释也都非常的全面到位了至于这段代码的流程就是,获取的系统版本失败的直接返回,倘若获取的系统是NT系统(windows2000/XP)的。
标签:
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。