[NSSCTF][闽盾杯 2021]DNS协议分析

DNS 流量分析 https://www.nssctf.cn/problem/941 用鲨鱼打开pcapng流量包可以看到很多DNS包,使用过滤器过滤掉多于的包 基本都是dnslog的流量,值得注意的是ZmxhZ3tlNj.i6ov08.dnslog.cn这样的流量,其三级域名一眼怀疑base64 确定,从上往下提取dns的三级域名 ZTgxMzE4Yn0K.i6ov08.dnslog.cn AwMWVlOGJi.i6ov08.dnslog.cn YTM3NmUxYz.i6ov08.dnslog.cn YyYWMxNTRj.i6ov08.dnslog.cn.localdomain ZmxhZ3tlNj.i6ov08.dnslog.cn ZmxhZ3.i6ov08.dnslog.cn ZmxhZ3tlNj.i6ov08.dnslog.cn Z.i6ov08.dnslog.cn ZmxhZ3tlNj YyYWMxNTRj YTM3NmUxYz AwMWVlOGJi ZTgxMzE4Yn0K 通过dns解码 题解

June 3, 2024 · 1 min · 21 words · neko

NNSCTF [BJDCTF 2020]base??

NNSCTF 这是BASE?? https://www.nssctf.cn/problem/691 拿到题目可以看到一个数组与编码后的字符,简单查看可以发现其符合base表的特征 那接下来就简单了,python写一个脚本把键值对遍历一下就好 a = "" base64_tab = {0: 'J', 1: 'K', 2: 'L', 3: 'M', 4: 'N', 5: 'O', 6: 'x', 7: 'y', 8: 'U', 9: 'V', 10: 'z', 11: 'A', 12: 'B', 13: 'C', 14: 'D', 15: 'E', 16: 'F', 17: 'G', 18: 'H', 19: '7', 20: '8', 21: '9', 22: 'P', 23: 'Q', 24: 'I', 25: 'a', 26: 'b', 27: 'c', 28: 'd', 29: 'e', 30: 'f', 31: 'g', 32: 'h', 33: 'i', 34: 'j', 35: 'k', 36: 'l', 37: 'm', 38: 'W', 39: 'X', 40: 'Y', 41: 'Z', 42: '0', 43: '1', 44: '2', 45: '3', 46: '4', 47: '5', 48: '6', 49: 'R', 50: 'S', 51: 'T', 52: 'n', 53: 'o', 54: 'p', 55: 'q', 56: 'r', 57: 's', 58: 't', 59: 'u', 60: 'v', 61: 'w', 62: '+', 63: '/', 64: '='} for x in base64_tab.values(): a += x print(a) 然后使用CyberChef解码 也可以用python一步到位 import base64 dict={0: 'J', 1: 'K', 2: 'L', 3: 'M', 4: 'N', 5: 'O', 6: 'x', 7: 'y', 8: 'U', 9: 'V', 10: 'z', 11: 'A', 12: 'B', 13: 'C', 14: 'D', 15: 'E', 16: 'F', 17: 'G', 18: 'H', 19: '7', 20: '8', 21: '9', 22: 'P', 23: 'Q', 24: 'I', 25: 'a', 26: 'b', 27: 'c', 28: 'd', 29: 'e', 30: 'f', 31: 'g', 32: 'h', 33: 'i', 34: 'j', 35: 'k', 36: 'l', 37: 'm', 38: 'W', 39: 'X', 40: 'Y', 41: 'Z', 42: '0', 43: '1', 44: '2', 45: '3', 46: '4', 47: '5', 48: '6', 49: 'R', 50: 'S', 51: 'T', 52: 'n', 53: 'o', 54: 'p', 55: 'q', 56: 'r', 57: 's', 58: 't', 59: 'u', 60: 'v', 61: 'w', 62: '+', 63: '/', 64: '='} #k1 = "JKLMNOxyUVzABCDEFGH789PQIabcdefghijklmWXYZ0123456RSTnopqrstuvw+/=" k1 = "" for i in dict: k1 += dict[i] print(k1) k2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" en = "FlZNfnF6Qol6e9w17WwQQoGYBQCgIkGTa9w3IQKw" b = '' for i in en: a = k1.find(i) print(a) b+=k2[a] print(b) print(base64.b64decode(b)) 我当初没接触这种题目的时候猜测的之间替换表然后查询,而是将自定义编码后的参数转化为标准编码,再使用标准base64解码

June 3, 2024 · 2 min · 317 words · neko

sql注入的学习[未完待续]

sql注入 作为经典中的经典基础中的基础,也是入门必然接触的东西,不得不深入好好品鉴一番( sql注入本质上是数据sql代码没有过滤用户内容的错误拼接 类似代码 $id = $_GET['id']; $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"; 这种,直接通过GET传参就可以控制sql语句 简单分类 整数注入 字符形注入 报错注入 布尔盲注 时间盲注 堆叠注入 注入方法与shell写入 order判断与联合查询 简单写了一个php和一个表 CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL UNIQUE ); <?php if(isset($_GET['id'])){ $host = 'localhost'; $dbname = 'testsql'; $user = 'root'; $pass = 'b409797a01eaf960'; $conn = mysqli_connect($host, $user,$pass, $dbname); mysqli_select_db($conn,$dbname); $id = $_GET['id']; $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"; $result = mysqli_query($conn, $sql); $row = mysqli_fetch_array($result); echo $row['id']; echo $row['email']; echo $row['username']; } ?> order by+union select在我看来是最简单的一种注入方法,目前体感也相对少见,union直译可为联合,在sql中作为将两个查询语句粘连在一起例如 ...

June 1, 2024 · 4 min · 767 words · neko

玄机靶场 蚁剑流量分析

蚁剑流量分析[玄机靶场] 这题考察的要不就是对蚂蚁流量特征的,要不就是php的阅读能力,难度不大 第一题 连接密码 打开文件,过滤http流量,随便打开一个 密码为1 flag{1} 第二题 黑客执行的第一个命令是什么 蚂蚁的流量逻辑是信息经过base64编码后在前面加两位,在payload中会使用substr函数截掉,所以做解码也需要删掉前两个 详细可见这篇文章 蚁剑流量分析 看前第24号包 重点关注末尾的传参内容及AkY2QgIi92YXIvd3d3L2h0bWwiO2lkO2VjaG8gZTEyNGJjO3B3ZDtlY2hvIDQzNTIz删除前两位base64解码cd "/var/www/html";id;echo e124bc;pwd;echo 43523很明显,第一个命令执行为id flag{id} 第三题 黑客读取了哪个文件的内容,提交文件绝对路径 一眼顶真 鉴定为/etc/passwd flag{/etc/passwd} 第四五题 文件上传包,蚂蚁的文件上传传参是文件文件hex+文件路径,文件路径传参逻辑与其他一样base64删掉前两个字符hex没有编码 那么路径就是L3Zhci93d3cvaHRtbC9mbGFnLnR4dA== » /var/www/html/flag.txt 内容 666C61677B77726974655F666C61677D0A » flag{write_flag} 第六题 黑客下载了哪个文件,提交文件绝对路径 flag{/var/www/html/config.php}

June 1, 2024 · 1 min · 35 words · neko

[[LitCTF 2023]Flag点击就送flask session伪造

flask session伪造 第一次接触flask session伪造,也可以称之为Cookie伪造吧,题目是根据wp做出来的,这篇算总结 session 存储 flask session可以存储于服务端也可存储与客户端的Cookie中,当存储与Cookie中时就可能出现伪造的问题 例如 [LitCTF 2023]Flag点击就送!这题 flag点击就送 通过插件可以看出框架为flask框架 可以在这个页面的cookie中获得session,flask的session可以部分通过base64解码,但不能直接替换,因为起经历过加密的操作,可以使用flask_session_cookie_manager3.py进行加密解密,既然我们已经知道了其格式内容,那么就可以尝试修改它为{“name”:“admin”},但现在还差一个key 既然比赛名字是LitCTF,那就尝试使用其作为kay 得到后替换掉cookie

May 28, 2024 · 1 min · 16 words · neko

NNSCTF [SWPUCTF 2021 新生赛]babyrce

https://www.nssctf.cn/problem/425 cookie修改 rce 空格绕过 进入题目可以把看到代码 将cookie设置为 admin=1 即可得到rasalghul.php访问阅读代码 代码只使用了preg_match("/ /", $ip)做了空格过滤可以使用%09(tab)来绕过,payload ?url=ls%09/ ?url=cat%09/flllllaaaaaaggggggg

May 28, 2024 · 1 min · 13 words · neko

My First Post

Hugo on Vercel

July 18, 2019 · 1 min · 3 words · Neko