CTF从入门到提升(十六)代码执行相关函数及例题分享
星期三, 九月 18, 2019
比如说能够对一个php的站点,控制php代码,那么我们就把它划分为代码执行,如果能执行网站所在服务器中的命令,我们这就把它划分为命令执行,因为它执行的是系统命令。
一般来说代码或命令执行漏洞都存在一个相关函数,通过控制部分参数传递到函数中实现命令执行。说到CTF题型中的这种攻击手段,一定要知道哪些函数能够被利用需要我们去关注的,首先会带大家了解一些代码注入的相关函数,例如执行php代码的一些函数。
1eval 函数
这个函数能够把字符串当成代码来执行,以分号结尾可以理解为是完整语句,即使报错加上分号之后语句也会成功执行。
2Assert
3call_user_func
注意不是所有的函数都能去调用,官方手册上也没有明确哪些函数可以调用哪些不能。
4call_user_func_array
5create_function
6preg_replace
这个函数比较早,5.5中它已经被弃用了,但是你一样可以去使用它,但是在7.0之后,你就没办法去调用它,它已经不存在了。
7array_map
8Usort
9{php代码}
price是中间可控的,我们这里就控制它。
我们传的是123,实际上echo里的语句是name的价格是123,分号后面是不存在的,实际传递值的时候,是不用去传引号的,我们把引号去掉就能实现命令执行了。
内容来自《CTF从入门到提升》