avatar

目录
无数字字母绕过 Bypass

很久以前做过安恒的题,最近遇到个差不多,来记录一下学习笔记
利用思路提出来自P神一些不包含数字和字母的 webshell

漏洞核心

  • 异或绕过 Bypass
  • 取反绕过
  • 不用数字构造出数字( 弱类型 true 值为 1 -> true + true == 2 )

安恒的题型和变种

php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include 'flag.php';
if(isset($_GET['code'])){
$code = $_GET['code'];
if(strlen($code)>40){
die("Long.");
}
if(preg_match("/[A-Za-z0-9]+/",$code)){
die("NO.");
}
@eval($code);
}else{
highlight_file(__FILE__);
}
//$hint = "php function getFlag() to get flag";
?>
php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include 'flag.php';
if(isset($_GET['code'])){
$code = $_GET['code'];
if(strlen($code)>35){
die("Long.");
}
if(preg_match("/[A-Za-z0-9_$]+/",$code)){
die("NO.");
}
@eval($code);
}else{
highlight_file(__FILE__);
}
//$hint = "php function getFlag() to get flag";
?>

具体参看 P神的文章
以及 微笑师傅的衍生操作

ISITDTU CTF 2019 EasyPHP

php
1
2
3
4
5
6
7
8
9
10
11
12
<?php
highlight_file(__FILE__);

$_ = @$_GET['_'];
if ( preg_match('/[\x00- 0-9\'"`$&.,|[{_defgops\x7F]+/i', $_) )
die('rosé will not do it');

if ( strlen(count_chars(strtolower($_), 0x3)) > 0xd )
die('you are so close, omg');

eval($_);
?>

有点类似以前写的国赛的 love_math

正则匹配了一些字母和数字还有一些特殊符号。 具体调试正则 这里有个工具网站

正则的意思是匹配 \x00空格(\x20) 的字符, 0到9 的数字、"$&.,|[{_defgops 以及 DEL(\x7f) 字符。如果你提交的字符串出现上述字符,die。

第二个strlen(count_chars(strtolower($_), 0x3)) > 0xd
表示我们提交的字符串一共不能出现多于 13种不同的字符

允许出现的字符如下:!#%()*+-/:;<=>?
@ABCHIJKLMNQRTUVWXYZ\]^abchijklmnqrtuvwxyz}~

test.php

看一下内置函数还有哪些能用

php
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$array=get_defined_functions();
foreach($array['internal'] as $arr){
if ( preg_match('/[\x00- 0-9\'"\`$&.,|[{_defgops\x7F]+/i', $arr) ) continue;
if ( strlen(count_chars(strtolower($arr), 0x3)) > 0xd ) continue;
print($arr.'<br/>');
}
?>

bcmul, rtrim, trim, ltrim
chr, link, unlink, tan
atan, atanh, tanh, intval
mail, min, max

虽然引号都被过滤了,但是PHP默认会把没有加引号的字符串当成常量处理,找不到对应常量就会将其解释成字符串,因此没有引号不是限制。

而且PHP调用函数,可以使用字符串调用。这个在当初 GXY禁止套娃 有提到过

limit_webshell_1

注意到 ^ 符号没有被过滤,那么我们就可以通过对字符串进行运算来规避if了。

后面就是常规的异或解题

相关的参考

Tiaonmmn.ZMZ官方wp
PHP代码审计,无字母数字webshell

文章作者: 晓黑
文章链接: https://www.suk1.top/2020/04/16/%E6%97%A0%E6%95%B0%E5%AD%97%E5%AD%97%E6%AF%8D%E7%BB%95%E8%BF%87webshell/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Manayakko - 微笑才是王道
打赏
  • 微信
    微信