在CTFshow pwn49中,file是静态编译的statically linked,checksec发现是Canary found(其实并没有,个人的checksec版本过低),依旧可以触发栈溢出漏洞。 思路:首先调用mprotect函数对内存页权限进行修改,之后调用read函数在适当位置读入shellcode frompwnimport*context(os ='linux', arch ='i386', log_level ='debug')io ...
PWN49 用ida打开我们发现是静态编译的,所以先要通过libc库来打是不可能的了,程序里面有一个栈溢出点,找一下有没有system函数,发现并没有 那么我们找一下有没有mprotect函数如果有这个那么我们可以把一段地址改成可读可写可执行权限,然后写入我们的shellcode就可以执行
前置基础 pwn19 fork()函数创建了一个子进程。如果当前代码处于父进程(fork() 返回 1)则进入 if 语句块。如果是子进程(fork() 返回 0),则进入 else 语句块。在子进程中给予了用户一个 shell 权限,允许用户在子进程中输入数据并通过 system 运行。 值得注意
另:也可以构建url/?c=echo`tac*`;(反引号的url为:%22,空格为%20)tac命令用于将文件已行为单位的反序输出,即第一行最后显示,最后一行先显示。(这个可以直接得到flag) f12得到flag web31 过滤了flag system php cat sort shell . space ’ 可以用%09(为tab符)这个来代替空格! url/?c=echo%09`tac%09*...
WEB入门 看到一些有意思的题就做一做,主要是太菜了想提高自己(orz) web55 题目给出了源码: <?phpif(isset($_GET['c'])){$c=$_GET['c'];if(!preg_match("/\;|[a-z]|\`|\%|\x09|\x26|\>|\