BUUCTF
文章平均质量分 62
爱隐身的官人
欲买桂花同载酒,终不似,少年游。
展开
-
BUUCTF [RoarCTF 2019] Easy Java1
在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致web.xml等文件能够被读取。防范:一般情况,jsp引擎默认都是禁止访问WEB-INF目录的,解决方法是修改Nginx配置文件禁止访问WEB-INF目录就好了: location ~ ^/WEB-INF/* { deny all;漏洞利用:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码。查看web.xml文件,来寻找class文件的位置。原创 2024-06-23 16:24:18 · 313 阅读 · 0 评论 -
BUUCTF [CISCN2019 华北赛区 Day2 Web1] Hack World
payload 变量:构造了一个 SQL 注入 payload,使用 substr() 函数逐个提取 flag 的字符,并通过 ascii() 函数转换为 ASCII 码值,然后与 j 比较。#外层循环 (for i in range(1, 50)):循环遍历 flag 的每个字符位置,假设 flag 最长为 50 个字符。#内层循环 (for j in range(32, 128)):循环遍历 ASCII 字符集中的可打印字符(从空格到 '~')。4、因此可以尝试通过布尔盲注的方式来得到flag。原创 2024-06-23 15:52:24 · 389 阅读 · 0 评论 -
BUUCTF [网鼎杯 2020 青龙组] AreUSerialz1
(2)对于FileHandler类,由于在反序列化中,先调用__destruct()析构方法,所以需要设计op的值绕过与 "2" 的强相等。(3)所以当op = 2时,一方面利用弱相等,可以调用read()方法和output()方法,另一方面也可以绕过强相等,避免执行在__destruct()时 op 赋值为 1。(1)get传参 "str",string转化为字符串,用 is_valid() 函数来进行过滤,要求传入的字符串的每一位字符的ASCII码都在32~125之间。1、阅读题目:php绕过类型。原创 2024-06-19 17:26:17 · 277 阅读 · 0 评论 -
BUUCTF [RoarCTF 2019]Easy Calc1
(3) 由于num被过滤, 因此根据php解析规则,可以将(num)改写为( num),waf在过滤时不会发现num,但是php在解析时" num"和"num"无区别,这样就可以传入查寻字符串了。(6) 又由于scandir("/")扫描后是以数组的形式输出,所以要利用var_dump() 或者 print_r()来对内容进行输出。num=scandir(chr(47)),利用" / "该符号的ASCII来进行转化。(4) 可以通过scandir("/")来扫描整个根目录,scandir()函数相关知识。原创 2024-06-11 18:06:00 · 550 阅读 · 0 评论 -
BUUCTF simplerev
1、使用IDA打开simplerev文件,查找函数,进入如下函数:发现flag关键字。4、查看key1 和 key3的值:得出v0和key的值。2、将src和v10还原成字符,按R键。原创 2024-05-05 13:21:57 · 271 阅读 · 0 评论 -
BUUCTF 新年快乐
如果用户输入的标志与预定义的标志相同,则输出 "this is true flag!2、接着用IDA打开脱壳后的文件,查看String窗口,发现了flag关键字。: 如果用户输入的标志与预定义的标志不同,则输出 "wrong!数组的内容全部设置为 0,长度为 0x1E (30) 个字节。,该函数在这段代码中没有显示出来,可能在其他地方定义。: 这是一个函数声明,表示定义了一个返回整数的函数。: 输出提示信息,要求用户输入正确的标志。,这个值表示用户输入的标志是否正确。个字符相同,则执行下面的代码。原创 2024-04-27 10:47:58 · 329 阅读 · 0 评论 -
BUUCTF XSS闯关1
使用'1闭合后面的单引号,当然也可以使用"//"将其注释,最终 username = alert(1);这段代码是一个简单的JavaScript脚本,其中包含一个alert函数调用,用于显示一个弹出框,内容为"xss"。javascript:alert(1),浏览器会把javascript后面的内容当做代码执行,直接在当前页面执行。所以执行:autosubmit=1&action=JavaScript:alert(1);原创 2024-04-18 17:59:14 · 2195 阅读 · 1 评论 -
BUUCTF afr_31
使用python3 ./flask_session_cookie_manager3.py encode -s "Drmhze6EPcv0fN_81Bj-nA" -t "{'n1code': '{{''.class.mro[2].subclasses()[71].init.globals['os'].popen('cat flag.py').read()}}'}" 进行伪造。(2)name=../../../../../proc/self/cwd/server.py (最后的py文件可以改变)原创 2024-04-17 15:13:22 · 411 阅读 · 0 评论 -
BUUCTF 粗心的小李1
最后使用git reset --hard 213b7e386e9b0b406d91fae58bf8be11a58c3f88 将文件还原到该文件夹内,出现一个html文件。然后在下载的文件内打开终端,使用git log命令,发现flag。1、审题,发现是 .git泄露的问题。原创 2024-04-14 19:48:06 · 225 阅读 · 1 评论 -
BUUCTF-Secret File
构造payload:?对secr3t.php进行访问发现了flag的位置,并发现了传输参数的方式为get传参。打开题目没有任何可用信息,查看源码:发现一个php有点可疑,访问进入下一个页面。在bp抓包后,将内容发送到Repeater板块,拦截发现一个secr3t.php。file=flag.php ,发现flag不可见。判断应该是隐藏在了SCRET的这个页面中。原创 2024-03-13 14:58:12 · 465 阅读 · 0 评论 -
BUUCTF-随便注
报错注入:报错注入是通过特殊函数错误使用并使其输出错误结果来获取信息的。简单点说,就是在可以进行的位置,调用特殊的函数执行,利用函数报错使其输出错误结果来获取数据库的相关信息。堆叠注入:mysql数据库sql语句的默认结束符是以";"号结尾,在执行多条sql语句时就要使用结束符隔开,而堆叠注入其实就是通过结束符来执行多条sql语句。(1)报错盲注,构建payload:第一种payload:inurl?原创 2024-03-10 12:08:27 · 1595 阅读 · 1 评论 -
BUUCTF-warmup
file=hint.php../../../../../ffffllllaaaagggg(这里其实包含的就是ffffllllaaaagggg,而不包含hint.php),此时函数实参 $page的值为 “hint.php../../../../../ffffllllaaaagggg”,但其并不在$whitelist白名单列表中,函数不会返回true。第2个语句可以执行,返回true。则经过mb_substr()的截取,返回的$page的值为 hint.php,刚好在白名单中通过校验,函数返回true。原创 2024-03-10 10:30:37 · 869 阅读 · 1 评论