Day3

command指操作系统的命令

system

passthru

exec

shell_exec

popen

pcntl_exec

执行运算符` (shell_exec)

cat echo 'xxxx'|base64 -d

用php手册查看回调函数

在php中assert和eval作用一样(在php5可以)

php动态函数调用

php的机制

<?php echo 1^2; ?> 结果是3

1的二进制是0001

2的是0010

^是进行二进制的运算

<?php echo urlencode('a'^'b');//如果不进行编码会变成不可见字符 ?> 结果是%03

这里要用到ascii码

a是97 0110 0001

b是98 0110 0010

----------------

相同为0不同为1

0000 0011

----------------

利用这个可以用两个不相干的字符构造成想要的字符

@ 0100 0000

! 0010 0001

-----------------------

0110 0001

这样就可以构造出a

<?php echo ('@'^'!'); ?> 结果是a

这里使用xor脚本,具体实战在web29

或操作和刚刚相反

上下有1则为0,否则相反

无回显情况下的命令执行

需要一个通道

就是数据传输的路径

shell_exec

system相比,没有回显结果