BaseCTF 2024
MISC[Week1] Base解密base64即可 [Week1] 捂住X只耳音频分离成左右声道后,将其中一个声道反相,然后再次合并两个声道,听到摩斯密码FOLLOW YOUR HEART 套上flag头即可 [Week1] 你也喜欢圣物吗lsb最低位拿到key解开zip后又有一个伪加密的,改09为00即可,txt底部解base64得到flag [Week1] 人生苦短,我用Python考查对python数组的熟悉,得到的py是可以运行的,一步一步检查即可1. 总长38字符2. 开头为BaseCTF{3. Mp在第11,12位(flag.find(‘Mp’) != 10指的是M应该在flag[10]也就是第11位)4. 末尾为3x}5. 末尾为}6. 总共有4个_7. 以下划线为分割字符长度为:14_2_6_4_88. 12-32(不包括32),每隔4个取一个为lsT_n(12 16 20 24 28)9. 以emoji猫为分割的前9位为BASECTF{S(此时s还不确定大小写)10. flag[-11]的5次方是1024(倒数第11位为4)11. flag[-7:-...
SQL
本章基于mysql讲解 mysql常用查询语句select database();查找当前所处数据库show databases;查找所有的数据库select schema_name from information_schema.schemata;同上 show tables from DB_NAME;查数据库中的所有表select table_name from DB_NAME;同上 show columns from TABLE_NAME;查找当前表中的所有列describe(DESC) TABLE_NAME;同上 SELECT [DISTINCT] [CONCAT (col1,”:”,col2) as col] selection_list |要查询的内容,选择哪些列 FROM 数据表名tb_list |指定数据表 WHERE primary_constraint |查询时需要满足的内容 GROUP BY grouping_columns |如何对结果进行分组 ORDER BY sorting_columns |如何对结果进行排序 HAVING secondary_...
PNG
结构PNG由文件标志和3个以上的数据块构成文件标志:89 50 4E 47 0D 0A 1A 0A数据块(chunk)重点关注IHDR,IDAT,IEND exif信息有时信息会藏于exif信息中,右键属性或者使用exiftool等工具查看文件exif信息 HEX数据直接嵌入有时信息会以明文或密文形式藏于十六进制数据中,常放于文件尾后使用winhex或010editor等十六进制数据查看工具获取信息此处的base64解密即可得到信息 文件头尾有些图片损坏是由于没有或不正确的文件头尾导致PNG文件头:89 50 4E 47 0D 0A 1A 0Apng文件尾:49 45 4E 44 AE 42 60 82 宽高修复IHDR前八个字节中有两个位对应图片宽高信息修改其值可将图片某部分信息隐藏 IDAT块 IDAT定义:图像数据块IDAT(image data chunk):它存储实际的数据,在数据流中可包含多个连续顺序的图像数据块。IDAT存放着图像真正的数据信息,因此,如果能够了解IDAT的结构,用户就可以很方便的生成PNG图像。 IDAT有固定的长度,并且正常情况下最后一个ida...
JWT
定义JWT(JSON Web Token)是一种用于在各方之间传递信息的紧凑且自包含的方式。它们通常用于认证和授权。JWT 由三个部分组成:头部(Header)、载荷(Payload)和签名(Signature)。这三个部分一起编码成一个字符串,使用点(.)分隔。 头部(Header)头部通常包含两个部分:令牌的类型(JWT)和所使用的签名算法(如 HMAC SHA256 或 RSA)。 示例: 1234{ "alg": "HS256", "typ": "JWT"} 载荷(Payload)载荷部分包含声明(claims)。声明是关于实体(通常是用户)和其他数据的陈述。有三种类型的声明: 注册声明(Registered claims):这些是预定义的声明,如 iss(发行者)、exp(过期时间)、sub(主题)、aud(观众)等。 公共声明(Public claims):这些可以自定义使用,但应避免冲突。 私有声明(Private claims):这些是自定义的声明,只有参与方...
upload
前端校验前端校验一般都是检查后缀名,可以先上传正常后缀文件,后通过bp等抓包工具修改。一些简单题可能关掉js直接传一句话木马即可,接下来是前后端都有检验的情况 检查文件后缀名各类名字1.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.swf 注意phtml上传后要访问的是.html 大小写绕过1.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf 空格绕过若没有使用trim()去除空格,可以使用空格绕过黑名单muma.php`` 点号绕过若没有使用deldot()过滤文件名末尾的点,可以使用文件名后加.进...
LitCTF 2024
WEBexx无过滤 xml 注入 12345<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE a [ <!ENTITY rabbit SYSTEM "file:///flag" >]><user><username>&rabbit;</username><password>123</password></user> SAS - Serializing Authentication入门级反序列化 123456789101112131415161718192021<?phpclass User { public $username; public $password; function __construct($username, $password) { $this->username = $u...
XSS
XSS的本质是一种高级钓鱼手法。 认识XSSXSS (Cross Site Scripting) 攻击全称跨站脚本攻击,是为不和层叠样式表 (Cascading Style Sheets, CSS) 的缩写混淆,故将跨站脚本攻击缩写为 XSS。 XSS 是一种经常出现在 Web 应用中的计算机安全漏洞,它允许恶意 Web 用户将代码植入到提供给其它用户使用的页面中。 在XSS攻击中,一般有三个角色参与:攻击者、目标服务器、受害者的浏览器。 原理:将恶意的 script 脚本插入进 html/css/js 文件当中。 反射型XSS反射型XSS,又称非持久型XSS。之所以称为反射型XSS,是因为这种攻击方式的注入代码是从目标服务器通过错误信息、搜索结果等等方式“反射”回来的:发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,故叫反射型XSS。而称为非持久型XSS,则是因为这种攻击方式具有一次性,由于代码注入的是一个动态产生的页面而不是永久的页...
SSTI
ssti漏洞成因ssti服务端模板注入,ssti主要为python的一些框架 jinja2 mako tornado django,PHP框架smarty twig,java框架jade velocity等等使用了渲染函数时,由于代码不规范或信任了用户输入而导致了服务端模板注入,模板渲染其实并没有漏洞,主要是程序员对代码不规范不严谨造成了模板注入漏洞,造成模板可控。本文主要对ctf中的flask模板注入进行分析。 常用python魔术方法: class 返回类型所属的对象 base 返回该对象所继承的基类mro 返回一个包含对象所继承的基类元组,方法在解析时按照元组的顺序解析。bases 以元组形式返回类型对象的全部基类 //以上三种都是用于寻找基类 subclasses 每个新类都保留了子类的引用,这个方法返回一个类中仍然可用的的引用的列表 init 类的初始化方法 globals 对包含函数全局变量的字典的引用 builtins builtins即是引用,Python程序一旦启动,它就会在程序员所写的代码没有运行之前就已经被加载到内存中了,而对于bui...
XXE
认识XML定义XML即 可扩展标记语言(EXtensible Markup Language),是一种标记语言,其标签没有预定义,需要自行定义标签。 与HTML的区别HTML 被设计用来显示数据XML 被设计用来传输和存储数据 基本格式123456789101112<!--XML声明--><?xml version="1.0" encoding="UTF-8"?><!--DTD,这部分可选的--> <!DOCTYPE foo [ <!ELEMENT foo ANY > <!ENTITY xxe SYSTEM "file:///c:/windows/win.ini" >]><!--文档元素--> <foo>&xxe;</foo> DT...
无参RCE
常用函数目录操作12345getchwd() - 函数返回当前工作目录。chdir() - 函数改变当前的目录。dirname() - 函数返回路径中的目录部分。scandir() - 函数返回指定目录中的文件和目录的数组。glob() - 同上 数组操作12345678910111213end() - 将内部指针指向数组中最后一个元素,并输出。next() - 将内部指针指向数组中的下一个元素,并输出。prev() - 将内部指针指向数组中的上一个元素,并输出。reset() - 将内部指针指向数组中的第一个元素,并输出。each() - 返回当前元素的键名和键值,并将内部指针向前移动。current() - 返回数组中的第一个单元pos() - 同上array_reverse() - 将数组内容反转localeconv() - 返回一包含本地数字及货币格式信息的数组。(数组第一项是‘.’)array_shift() - 删除数组中第一个元素,并返回被删除元素的值。array_flip() - 交换数组中的键和值,成功时返回交换后的数组array_rand() - 从数...