12 2020 档案
摘要:参考 https://www.52pojie.cn/thread-980141-1-1.html 是一个AES CBC的加密 1 from Crypto.Cipher import AES 2 import base64 3 4 5 def AESencrypt(data, key): 6 aes1
阅读全文
摘要:这是一个稍长的pop链构造 构造出ssrf打127.0.0.1 利用soap类 脚本如下: 1 <?php 2 3 4 //第一步 反序列化HelloWorld_DB 5 class HelloWorld_DB{ 6 private $coincidence; 7 function __constr
阅读全文
摘要:两个题都是原题,然而我第二题祥云杯的原题还是没弄出来。 Re friendlyRE 这题是一个错题,出题人把!写成了@ 先去除花指令。 然后发现有base64的表,跟了一下发现三次对表进行的变换。 是相邻两位互换 是大小写互换 是有一个32位的偏移 所以首先针对base64进行处理,脚本如下: im
阅读全文
摘要:这是一个文件上传的题目。 源代码如下: 1 <?php 2 namespace Home\Controller; 3 4 use Think\Controller; 5 6 class IndexController extends Controller 7 { 8 public function
阅读全文
摘要:这一题是node的命令执行和沙箱逃逸 我参考了这篇文章https://www.jianshu.com/p/67b5b05137da js Error().stack: https://www.bookstack.cn/read/node-in-debugging/3.3ErrorStack.md n
阅读全文
摘要:爬 毛都没有,唯一的发现是php 然后随便输一下发现是nginx/1.14.2 但是仍然没有什么用 然后发现是git泄露,上Githack 审计index.php 第一层过滤了各种伪协议 第二层把最内层括号中间的东西取了出来,然后替换为NULL,并保证了不能有多余的东西,也就是其他师傅所说的无参数R
阅读全文
摘要:hint: cve-2020-7066 是一个ssrf漏洞https://www.anquanke.com/vul/id/1966253 所以问题的关键就在于get_headers()这个函数可以被\0也就是%00截断。 题目样貌如下: 所以构造如下exp: http://05ad3044-68f1
阅读全文
摘要:四个文件: 勒索的程序 被加密的flag dll 启动器 勒索的程序主要流程就是这样: 框出来的是具体的加密操作 程序给出了RSA的私钥,直接使用工具对密文进行解密,得到AES的密钥,然后解密在最后的密文就可以得到flag。 具体参考文章:https://bbs.pediy.com/thread-2
阅读全文
摘要:初探shellcode~ 主要思路: 0.构造要写入的代码: 例:MessageBox: (push 00)*4 = 6a00 call MessageBox(通过要跳转的地址-E8这行指令的地址-5): 相对跳转 E8 xx xx xx xx jmp 回到正常的执行流程: 同上也是相对跳转 E9
阅读全文
摘要:引出问题:如果想改变全局变量的初始值,该怎么做? 如果有初始值,初始值是存在PE文件中的。 在文件中和在内存中的对齐方式不一样。 !!!有些情况下内存对齐和文件对齐一样的也需要计算才能找到对应的位置!!! 内存中展开从ImageBase(扩展PE头中)开始,然后依次对齐。 RVA: 相对虚拟地址 =
阅读全文
摘要:这个题很神奇,给了一个.s文件和一个txt文件。 打开一看,txt文件是输出,.s文件是汇编代码,x86-64的汇编,完全不难,大概看看就知道干了些啥了,这里贴出分析: 1 00007FF7A8AC5A50 push rbp 2 00007FF7A8AC5A52 push rdi 3 00007FF
阅读全文
摘要:今天复习了一下tcp通信的实现,写了写代码。 简单的总结一下: 服务器作为监听者的角色需要先创建服务器socket套接字,然后使用bind绑定套接字和端口信息等等,再创建用于连接客户端的socket套接字,使用accept函数等待客户端的连接并处理。 客户端则只需要创建用于连接服务器的socket套
阅读全文