我是9.6号去考的pte证书,一句话总结就是,出了一些新题目,但是难度并没有增加,最大的问题就是考试现场的环境,还有想信题目会出错。去年五月份也考过一回,当时拿到了7个key,但是不知道为啥没过。这次算是第一次补考。
分两部分,实操题思路和坑点总结(强烈推荐看坑点总结)
实操题前五题的思路
是一个新出的题目,题目给了一个登录页面。
我的思路大概就是先扔过去扫目录,然后看看F12,发现了有register.php页面,想着随便注册一个用户看看。
后台要是没有东西,一般就登录框,或者注册点有问题。
登录进去后,有管理信息的界面,但是界面上显示没有权限,并显示了管理员的邮箱账号。
然后思路又变成,有越权?或者直接拿着账号去爆破?或者就是概率及其小,但是pte考试常出的二次注入?
前两个思路测试完之后发现只剩第三个思路,注册一个
[email protected]'#
注册的时候会有js限制,拿之前的注册包,然后改成这个就可以绕过,然后拿着这个账号去登录,登录也有js限制,先输入个正常的账号,然后再去抓包绕过js限制,登录成功后可以看到有处地方存在修改密码的地方,然后直接修改密码为123456,然后用[email protected]/123456登录即可。
登录完成这只是第一步。。。登录后在后台查看管理信息的界面,发现可以删除东西,抓包看到删除的地方有sql注入,然后想着直接扔sqlmap跑。
跑呗,第一次没跑出来。。我以为有问题,然后又跑了一遍,就跑出来了。就很无语。sqlmap语句
sqlmap.py -r 1.txt
然后找数据库中哪里存在了key,找了一圈没找到,然后直接dump了数据库
sqlmap.py -r 1.txt --dump
然后没发现,仔细看题目是在根目录下,想着无非就是getshell了呗,我直接sqlmap跑,前面看过权限为dba权限了。
sqlmap.py -r 1.txt --os-shell
可惜的是os-shell不行。。。我就试了sql-shell
sqlmap.py -r 1.txt --sql-shell
可以搞,然后就是读文件
select load_file('/key');
正常的文件上传,慢慢测就好,无非就是检测内容,检测后缀
GIF89a
<?php system($_GET['A']);?>
然后get参数传
A=cat key.cisp
感觉文件包含还行,之前有次看群友在讨论的时候,顺便练习了一下,两个题目差不多。
先是看到有包含一个?file=hello,尝试直接读/etc/passwd
?file=/etc/passwd
然后直接读key.cisp即可
不过有些时候pte考的比较坑,后面细说
<?php
$a=$_POST['a'];
eval("\$o=strlower(\"$a\");");
?>
我当时第一想法就是直接闭合
$a=");system("cat key.php");//
然后读不出来。。。我人都傻了
这个题从开头到结束,我没做出来。。我感觉我的答案也没问题啊。后来我看了颖奇大佬的博客,一模一样的payload,但是我没出key。
题目如图,最简单的一道题,但是考试现场有坑,后面说。
综合题比较简单,但我做的时候,出了一些问题。
拿到目标直接扫目录了,有个phpmyadmin,然后直接root/root登录
登录phpmyadmin上去有第一个key。
然后找到web站点80端口的管理员账号密码,我是直接hackbar生成123456的md5然后进行替换。
替换后成功登录。后台没有key,应该得拿到shell。
但是咋传php马都连不上,就很尴尬,但是上传应该是没有过滤的,于是我传了一个system马
<?php system($_POST['a']);?>
system是可以执行的
netstat看到开启了3389端口,要不然我还真记不住注册表开3389的语句(不过自带的工具包里面有能开3389的工具)
然后一串操作,添加用户,看组,添加到管理员组,关闭防火墙。
net user xxx Xx123456 /add
net localgroup
net localgroup administrator xxx /add
netsh firewall set opmode mode=disable
然后用xxx登录,发现到了c盘下的web目录,找到另外一个key。
然后最后一个key应该在桌面或者桌面的回收站里,xxx没找到,直接更改了administrator用户的密码,然后再次登录3389,发现回收站里的key
坑点总结
坑点1:sql注入是站库分离的,所以getshell不了,只能sqlshell,然后也只能load_file,要是有其他思路能拿到key的,希望师傅们不吝分享。
坑点2:命令注入,那玩意环境我不知道有没有问题,但是payload应该没问题,还有一些题需要先给key.php给权限,才能读到。
坑点3:第五个实操题,环境有问题。。我当时反馈给了监考老师,然后老师说这是新环境,移题目的时候把代码弄错了,然后弄了半天。
坑点4:其实最恐怖的不是题目难度,而是考试靶场环境,还有写key的时候一定要仔细仔细仔细,考试的时候是不能复制的。考试一半,突然断网!有时候靶场里面输入不了东西。考试的时候,开考两个小时,我还为了环境头疼。
坑点5:文件包含的时候正常题目使用伪协议啥的,完全没问题,或者直接读,但是有时候会过滤伪协议里的php,然后把其他伪协议放黑名单,双写php即可,例:pphphp://filter.
坑点6:综合题的80端口文件上传的时候,我们传的一句话马能解析,但是使用菜刀,蚁剑连不上的时候,不要着急,使用system函数也可直接执行系统命令,或者直接使用readfile()函数读key。不要最后一道key,拿到证书也完全没问题
最后一点吐槽
我要吐槽我要吐槽,考场里的抓包为啥只有burp,为啥不能有yakit,我不服!还有一堆老工具,用的头疼。还有第五题不是有问题吗。。然后有人在监考老师没改题目的情况下把key拿到了,我不理解,可能用了什么高科技。还有第一题的sql注入,二次注入,然后删除点注入,还只能load_file读文件。。。你搞这么复杂干嘛,还不如来一道sql注入,然后弄点waf有意思。还有pte最新发的通知,以后考pte可能会变得更难,或者更复杂,例如那个sql注入(新题),还有pte以后会更加严格,各种报名渠道以后都审核的更严格,想走后门的这种不太可能,有就当我没说。
往期文章推荐
SRC 挖洞tips
一次src挖洞经历(不是一个)
自己遇到的一些逻辑漏洞
一文学懂正则匹配
对单一的ip目标测试
一次命令执行的实战绕过