京津冀攻防-array_slice绕过

前言

题目不难,但是为什么我要写这么一个小比赛,因为我爆零了。

对,致敬传奇爆零web手EddieMurphy

路还很长,确实还很长。

浅析

前面的绕过很简单,data伪协议就能进,php伪协议就能读sql_unlimited.php,然后是就是这个源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
header("Content-type:text/html;charset=utf-8");
$mysqli=new mysqli("localhost","root","toor","unlimited");
if(mysqli_connect_error()){
printf("connecte failed%s<br>",mysqli_connect_error());
exit();
}

function sql_sel($id){
if(is_array($id)){
$id = implode(",", $id);
$result=$GLOBALS['mysqli']->query("select * from info where id in ($id)");
while(list($id,$message)=$result->fetch_row()){
echo '<li>'.$id.':'.$message.'</li>';
}
}

}


function do_co() {
if(isset($_POST['id'])){
$post=$_POST;
if (@!is_numeric($post['id'][0]) || @!is_numeric($post['id'][1])) {
die("NO! NO! NO! The Parameters must be numeric");
}
sql_sel(array_slice($post['id'],0,2));
}
die('No Permissions');

}
do_co();

一开始傻傻的我还以为直接打十六进制,但是确实本地打不通,黔驴技穷。

和赵哥一直交流也是,没有什么clues,以及那道tomcat的编码上传也是,没有过多接触这些题也让我疲于应付。

但是SE学长一语道破(tql,这才是真正的赛棍),直接看到源码的array_slice(),来自:https://xz.aliyun.com/t/2087:

image-20240908003559993

结束了,一切都结束了。

image-20240908003056564

image-20240908003638173

后记

但是,晚了。

队友把其他方向AK又如何,你的web爆零了。

排名第一又如何,因为跟你无关。

晚上出去drink了点🍺,独自骑行在回来的路上,路真的很长。

image-20240908003742077

蜀道难,难于上青天。


京津冀攻防-array_slice绕过
https://eddiemurphy89.github.io/2024/09/08/京津冀攻防-array-slice绕过/
作者
EddieMurphy
发布于
2024年9月8日
许可协议