个人博客:点我
这是一次悲痛的考试历程。
传统的考试结构还是20+5+3,其中的50分基础题除了以往亘古不变的sql注入、文件上传、文件包含、命令执行、代码审计、日志审计、XSS,这次的第五题基础题变成了考察灵活性但难度并不高的常识题。介于大题的第一问直接抄错key差了三分没过线,我只说我做出来的题。
选择题
选择题难度其实并不高,基本都涉及一些网络常识,包含稍偏一些的协议的问题。
sql注入
这道sql注入比较新鲜一些,它是一个模拟的发文平台,有登录、注册和发表文章三个入口,key是在数据库中的某个字段。一上来就想到有可能是通过注册一个类似admin’ #的用户名然后通过修改密码实现修改修改admin的密码实现管理员登录。但并没有修改密码的窗口。sqlmap又跑了一下登录和注册的地方,又尝试了一下手注,并没有注入点。由于是第一道大题,就直接跳过了,后来知道是在发表文章的地方存在注入点(确实很新鲜).
文件上传
今年的文件上传非常的简单,连后缀php都没有过滤,直接拿攻击机中的sqzr.php改一下MIME和文件头GIF89a即可上传成功,上传在根目录且名字都没有变,菜刀直接连上去即可。
文件包含
这个文件包含的结构大约为:
http://172.16.12.100:83/start/index.php?page=hello
通过下载hello发现hello中是<img src=not.svg>。并通过测试是本地包含,可以包含index.php本身。但是直接通过伪协议php://不能读取key.php,查看源代码发现他把我们输入的所有内容添加了注释符<!-- 因此尝试注释闭合–>后面的代码就可以注入到html中显示出来,但是发现过滤了php:// 尝试双写绕过,最后通过php:/php:///绕过。最后的代码为
http://172.16.12.100:83/start/index.php?page=-->php:/php:///filter/read=convert.base64-encode/resource=key3.php
代码执行(代码审计)
源码不记得了,但大概意思是需要GET传参a,并且把传参内容变成小写然后套一个eval执行,因为是在php中因此可以尝试把eval全部闭合后再加点私货。
?a=x\"););system("ls ");
(题目名字给忘了)
大致意思是Guest客户登录,但需要admin权限才能看到key 在登陆后的界面刷新抓个包,可以发现文件头中有
Isadmin=false&username=.......
前面的isadmin很好理解,直接改成true就拥有了管理员权限,后面的username是先经过base64加密然后url编码的,直接改成admin然后base64、url放包即可。
综合渗透
这是一个医院的挂号平台,通过扫描开放了21 22 80 6701 3306端口,21端口ftp匿名登录上去看有一个config.php,其中就有数据库的账户密码和地址,连上数据库找到user Mayo,由于密码是md5保存,无法破解因此直接修改为1234的md5加密。登录到管理后台拿到第一个key。后台还有一个未制作完成的只能上传pdf的文件上传,寻找文件包含将其搞定即可。最后应该也是需要数据库提权的,由于觉得算准了能过就没去多考虑。
最后总结
本以为是稳稳地过的,万没想到综合题的第一个key能多抄一个 “l”。 考试一定要看清o和0,大小写,一个还是两个字母,是提交key{…}还是…,这些东西很细但很重要,一道题十分一不小心就不满70分过不了了!
|