Shiro身份验证绕过(CVE-2020-13933)
Shiro 身份验证绕过 (CVE-2020-13933)此题思路:url编码绕过 1.看到啥都没有的东西,dirsearch扫扫 进入login页面要求我们先登陆 再看后面有个奇怪的%3b的url,打开看 还是没有思路对吧,其实这里你已经完成对这个漏洞的探索了 我们在思考这个%3b到底是啥呢? shiro在看到这个分号的时候以为请求已经完成了,从而放行; 但是后端认为他也是url的一部分,所以解析 为什么要加个;呢?保护admin/index页面 如果直接进入会跳转到
[BJDCTF2020]EasySearch 1
[BJDCTF2020]EasySearch详细解题1前期知识储备:1.index.php.swp在 CTF 和 Web 开发中,.swp 文件是一个非常经典且重要的源码泄露点。 1. 它到底是什么?.index.php.swp 是 Vim 编辑器 生成的“交换文件”(Swap File)。 当你使用 Vim 编辑 index.php 时,Vim 会在后台自动创建一个隐藏文件。 文件名规则:在原文件名前加一个点 .,并在后缀名后加 .swp。 状态: 如果你正常关闭 Vim,这个文件会自动删除; 但如果 Vim 非正常关闭(比如 SSH 断开、进程被杀、服务器宕机),这个文件就会残留在服务器上。 2. 为什么在 CTF 中很重要?因为它包含了 index.php 的完整源代码。 很多出题人会故意在服务器上留下这个文件,让你通过它获取后端逻辑。由于它是一个隐藏文件(以 . 开头),普通的 ls 命令看不见它,很多管理员会忘记删除。 2.SSI——Server-Side Includes Injection(服务端包含注入)1. 什么是 SSI 指令?SSI (Server...
xor 1
xor1找到 1234567891011121314151617181920212223int __fastcall main(int argc, const char **argv, const char **envp){ int i; // [rsp+2Ch] [rbp-124h] char __b[264]; // [rsp+40h] [rbp-110h] BYREF memset(__b, 0, 0x100u); printf("Input your flag:\n"); get_line(__b, 256); if ( strlen(__b) != 33 ) goto LABEL_7; for ( i = 1; i < 33; ++i ) __b[i] ^= __b[i - 1]; //异或:b[i]=b[i]^b[i-1] if ( !strncmp(__b, global, '!') ) //你的输出要和global一摸一样 printf("...
新年快乐 1
新年快乐1需要下载查壳和脱壳软件 我用的是Exeinfo PE和upx 解题:有壳upx 1 upx脱壳 这里怎么直接看是否有壳呢?ida一打开函数很少就两三个 为什么函数少就说明有壳?正常的程序在编译时会引入大量的库函数和初始化代码,F5 之后你会看到一长串函数名。 加壳的逻辑:壳本质上是一个“外壳程序”,把真正的代码压缩并加密存在数据段里。 当你打开加壳的文件时,IDA 看到的只是壳的自解压代码。 两三个函数:这通常就是壳的全部——一个负责解压的函数,一个负责跳转到真实入口点(OEP)的函数。 在按照前面 reverse1和2 内涵的软件1的思路:查可疑字符串,定位后交叉搜索,再看反汇编代码 得到flag{HappyNewYear!}
reverse2
reverse 2按下shift+f12 进入字符串窗口看到 .rodata:0000000000400925 00000018 C this is the right flag! .data:0000000000601080 00000012 C {hacking_for_fun} 双击字符串进入这界面,点击aThisIsTheRight,按x键 弹出,按ok 来到新界面,按f5可以反编译c 来到 1234567891011121314151617181920212223242526272829int __fastcall main(int argc, const char **argv, const char **envp){ int stat_loc; // [rsp+4h] [rbp-3Ch] BYREF int i; // [rsp+8h] [rbp-38h] __pid_t pid; // [rsp+Ch] [rbp-34h] char s2[24]; // [rsp+10h] [rbp-30h] BYREF unsigned __...
内涵的软件1
内涵的软件1shift+f12 搜flag,发现无用信息 尝试搜{ 找到flag
reverse1
reverse 1快捷键:shift+f12 字符串搜索窗口 x交叉搜索 f5反汇编c r数字转ascii 解法:进去是一个exe程序,可以用脱壳软件脱壳, 但是这个没有壳 直接ida反汇编就ok 1.查看shift+f12 字符串搜索窗口,搜flag,找到相关内容 双击打开,再交叉引用找到文件位置并打开(找到这个字符串在什么时候被引用了),反汇编c看代码 1.1 strncmp函数strncmp(Str1, Str2, v5) 比较前两个字符串,前v5个位置; 相等值为0; 大于值为正数; 小于值为负数; str1是什么? -> sub_1400111D1(“input the flag:”);猜测d1是printf; sub_14001128F(“%20s”, Str1); 可以看到str1是我们输入的内容; str2是什么? -> 寻找这个字符串 1.2 for循环遍历,把所有ascii为111的字符都换为48这里光标指向后按r,可以把ascii转字符 得到: 1.3 综合12if ( !strncmp(Str1, Str2, v5) ) sub_1...
php下家族介绍
1.include特性:不仅是包含文件,会把文件内容当php代码执行 2.eval特性:处理字符串 3.preg_match:处理字符串
linux下proc_self学习笔记
Linux /proc 文件系统(/proc/self)的学习笔记出处:https://blog.csdn.net/cjdgg/article/details/119860355 前提知识点:文件句柄(File Descriptor,简称 fd)是 Linux 内核为每个进程分配的唯一标识符(非负整数),用于跟踪该进程打开的文件、管道、网络套接字、设备等资源。 所有 I/O 操作(读写文件、网络通信等)都通过文件句柄进行。例如: 0 标准输入(stdin) 1 标准输出(stdout) 2 标准错误(stderr) 其他句柄:普通文件(如 3)、网络套接字等。 内容精简如下: 1. /proc/self 是什么?/proc 目录:Linux 的伪文件系统,存储内核和进程信息(只存在内存中)。 /proc/[pid]:存储特定进程(如 PID 1083)信息的目录。 /proc/self:一个快捷方式。谁访问它,它就指向访问者自己的进程目录。 作用:攻击者在不知道当前进程 PID 的情况下,可以直接用 /proc/self 获取当前进程的信息。 2. 常用子目录&...
Ook编码详解
Ook编码详解1 2 3 Ook! 是一种基于极简主义设计的编程语言,属于 esolang(怪异语言)的一种。它是从 Brainfuck 演变而来的,主要用于编码和解码任务。Ook! 的指令由简单的短语组成,例如 Ook. Ook? 或 Ook! Ook!,这些短语对应 Brainfuck 的操作符。 编码规则 Ook! 使用一组固定的短语来表示操作符,每个短语由两个单词组成。以下是 Ook! 和 Brainfuck 的对应关系: Ook. Ook. 对应 >(指针右移) Ook! Ook! 对应 <(指针左移) Ook. Ook! 对应 +(当前单元格值加一) Ook! Ook. 对应 -(当前单元格值减一) Ook! Ook? 对应 [(循环开始) Ook? Ook! 对应 ](循环结束) Ook. Ook? 对应 .(输出当前单元格值) Ook? Ook. 对应 ,(输入值到当前单元格)