由于水平有限,就写写自己做出来的题目。
Web
Level - week1
这部分还是比较简单的说
Are you from Europe?
进去一看,呀,竟然是抽SSR,看来我们这种非酋应该是没什么手气了吧。
直接看源代码,发现最后有
1 | eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('w p(){b a=l("8!k,j 8 o 1 m?");5(!$("#4").7()&&!$("#9").7()){2("i。");f}b 1="";1+="";1+="";1+="";1+="y";1+="{";1+="g";1+="h";1+="3";1+="6";1+="v";1+="h";1+="0";1+="s";1+="e";1+="u";1+="6";1+="0";1+="n";1+="r";1+="!";1+="}";5(a){$("#4").d();$("#9").d();2("t。1: "+1)}q{2("x。")}}',35,35,'|flag|alert||serv5|if|_|html|SSR|craft5|buy|var||remove||return|T||你根本不是欧洲人|你愿意献祭你全部的|欧洲人|confirm|吗||来获取|soHappy|else|E||兑换成功|N|C|function|你失去了唯一的机会|hgame'.split('|'),0,{})) |
一看就是js混淆,直接丢去解密
得到
1 | function soHappy() { |
得到flag
special number
这题一开始我还没做出来233333,果然自己还是太菜了。
题目直接给出代码
1 | include_once("flag.php"); |
这题便是一个php弱相等的题,这个正则就是一串数字跟字母
于是便想到了比较经典的0e
试了一下key=0e11111111111
,就过了23333.
can u find me?
题目很直接地提示了
1 | only robot know where is the flag |
于是robots.txt
了解一下
1 | User-agent: * |
这就没什么意思了。。
结果还没完,心里又一高兴
1 | only admin can get flag |
看到Cookie
1 | Cookie:user=guest |
js修改cookie了解一下,然后拿到flag
tell me what you want
根据提示输入flag
1 | request method is error.I think POST is better |
很明显的提示,然后改成POST发包,body为want=flag
得到Response:
1 | https://www.wikiwand.com/en/X-Forwarded-For |
在修改请求头X-Forwarded-For
为127.0.0.1
得到Rep:
1 | <br/>https://www.wikiwand.com/en/User_agent |
这个就不能直接修改ua为Icefox/57.0
了,得带上普通浏览器的ua,随便拿个firefox的ua进行修改
1 | Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0 |
得到Rep:
1 | <br/>https://www.wikiwand.com/en/HTTP_referer |
再改请求头Referer:www.google.com
得到Rep:
1 | <br/>https://www.wikiwand.com/en/HTTP_cookie |
又得来修改cookie了…查看Cookie
直接发现有个isadmin=0
,那就改成1就好了,最后得到flag
我们不一样
1 | include_once("flag.php"); |
一看又是一题php弱相等,考察strcmp
,只要其中一个为数组就好
1 | str1=0&str2[]=0 |
得到flag
Level - week2
Random?
打开地址啥都没有,一开始没什么思路,后来经过大师傅提醒,才注意到题目描述中说了
1 | 多random几次没准就随机到一样的值呢 PS:网不好vim线上改代码真是致命 |
既然是提到了vim改代码,那就可能会有源码泄露,vim的编辑临时文件为.random.php.swp
果然得到一个.swp文件,但是在windows下是看不了的。于是拖到了kali里面用vim
恢复原始文件
把.swp
文件放到随便一个目录下,然后用
1 | $ vim -r random.php |
便可直接恢复random.php
文件
看到源代码
1 | <?php |
发现还是一个反序列化的题,这题弄了挺久没弄出来,还是参考了一下其他小伙伴的做法
总之按照题目意思,就是得使得emmm
的public
与secret
相等,那就构造一个实例化对象,让他们的public
与secret
相等就好了,注意一下相等时候要有&
1 | $a = new emmm(); |
得到payload:
1 | emmm=O:4:"emmm":2:{s:6:"public";N;s:6:"secret";R:2;} |
拿到flag
草莓社区-2
不知道是不是题目的问题show_maopian.php?mao=2.jpg
竟然不能显示图片…
然后发现竟然可以有/etc/passwd
,但是没有拿到/etc/shadow
,也就拿不到服务器
题目提示flag在../flag.php
,又不能直接访问,那就用php伪协议试试
1 | show_maopian.php?mao=php://filter/read=convert.base64-encode/resource=../flag.php |
得到
1 | PD9waHAKCSRmbGFnPSJoZ2FtZXshbTRvX3BpNG5fQ2hhT19oYW9fa2FuIX0iOwo= |
解码便得到flag
草莓社区-1
也不知道出题人怎么想的,这题简单得多,但是顺序放在了2下面,这次是show_maopian.php?mao=1.jpg
和show_maopian.php?mao=1.jpg
都可以读到图片,那就根据题目提示直接试试读一下../flag.php
,直接拿到flag…2333
xss-1 & xss-2
接下来的这两个题就没怎么去做了,而且题目要求:payload需要在chrome和firefox上都能使用,且不能有交互。感觉挺难的,就没花时间弄了
记录一下题目以后看看(虽然极有可能不会去看…)
1 | xss-1 |
最简单的sql题
还真是最简单的…
1 | payload: username=admin%27+or+1%3D1+%23&pwd=1 |
Level - week3
正常的SQLi
这题我还没做出来,页面显示
1 | 因为出题人太懒了,所以现在没有任何功能 |
提示也没那么明显,有判断guest,发现Cookie里有name=Z3Vlc3Q%3D; isadmin=0
,那就改改,然后发现没什么用
没什么头绪就扫扫,然后发现有备份.bak文件,下载后发现源码
1 | <?php |
送分的SQLi
输入admin提示
1 | Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /home/hctfgame/week3/sqli2/index.php on line 8 |
自己手注还不是很厉害,还是用sqlmap吧23333(sqlmap真是太强大了orz)
既然有了mysql的报错,那就可以省掉判断数据库的步骤了
1 | $ sqlmap -u "http://118.25.18.223:10068/?id=1" --level 3 --dbms mysql --dbs |
拿到flag
Misc
Level - week1
白菜1
题目提示LSB,那就去看看吧
根据CTF wiki的提示操作得到flag
白菜2
1 | $ binwalk misc2.jpg |
发现有zip
1 | $ dd if=misc2.jpg of=misc2.rar bs=1 skip=1037199 |
直接dd提出rar得到里面的flag
pacp1
看到最后有一个GET /flag.php
的请求。
追踪一下即可得到flag
Crypto
Level - week1
easy Caesar
1 | vuoas{Hvs_ei8qy_pf7kb_1l_xIadg_cjSf_o_Zo9m_rCu} |
凯撒加密。没什么好说的
Hill
1 | Not hard key:9 17 6 5 Ciphertext:phnfetzhzzwz |
懒得解了…
Polybius
1 | FDXDGDADDG_FXXFAAXFAG_GDFXFFXFFXADXFDA_GDAD |
根据题目,感觉像是ADFGVX密码。
1 | orjtz_nebel_jnsented_jt |
confusion
1 | --/.-./.-../-/-.-/-..../-.-/-..-/-./...-/--../-..-/--.-/.--/-.../.../-./.-/..---/..-./.../..-/..---/--./--./-.../.../.--/....-/...../-.../.../.-../.-/--../..-./..-/-..../.../...-/.---/-.../-./-../.-/--../.../.-./..../..-/-..../--.-/-...-/-...-/-...-/-...- |
摩斯电码,解得
1 | MRLTK6KXNVZXQWBSNA2FSU2GGBSW45BSLAZFU6SVJBNDAZSRHU6Q==== |
base32再解得
1 | dW5yWmsxX2h4YSF0ent2X2ZzUHZ0fQ== |
base64再解得
1 | unrZk1_hxa!tz{v_fsPvt} |
rot13再解得
1 | haeMx1_ukn!gm{i_sfCig} |
最后用栅栏解得到flag
baby step
1 | pow(0x1111111111,flag,0x976693344d) = 0x7ac21f64ed |
Comments