#PHP代码审计
Challenge-21-25

Twenty-one

image.png

1
2
3
4
5
if (0 >= preg_match('/^[[:graph:]]{12,}$/', $password))
{
echo 'Wrong Format';
exit;
}
Challenge-11-20

Eleven

docker   又拉取失败
image.png
这不是11题嘛 为啥copy 10
解决方法:
在根目录创建 challenge10.php  代码改成11题的代码就好了
image.png
image.png

1
2
3
4
5
6
7
8
9
<?php
include "flag.php";
$a = @$_REQUEST['hello'];
if(!preg_match('/^\w*$/',$a )){
die('ERROR');
}
eval("var_dump($$a);");
show_source(__FILE__);
?>
Challenge-1-10

One

使用docker 拉取环境
docker-compose.exe -f .\docker-compose.yml up -d
image.png
进行访问
image.png
首先看到从上而下看到一个 base64 编码的数据
然后就是 引入lib.php
然后就是输出一个 编码过的flag
对第一行的base64 编码进行解密操作 ,进行反向解密操作
对每一个函数进行解释
:::info
base64-encode() 进行base64加密
hex2bin 16进行转换为 ASCII 码
strrev 进行反转
bin2hex ASCII 码转为 16 进制
:::
编写PHP 脚本
image.png
对其进行反转操作就可以了 我们最终的数据是ASCII码 不是 16 进行 所以这里不要按照直的顺序进行编码
image.png
得到flag
如果按照纯顺序来做会报错
image.png