手机做网站公司有哪些,frontpage做的社交网站,腾讯官方网站,百度网站体检[HUBUCTF 2022 新生赛]Calculate
进到主页 翻译 回答以下数学问题20次#xff1b;你有3秒钟的时间来解决每个问题#xff1b; 为了保护服务器#xff0c;你不能在1秒内回答一个问题 您已回答0个问题#xff1b; 让我们3秒速算#xff0c;没那个实力#xff0c;提示说是写…[HUBUCTF 2022 新生赛]Calculate
进到主页 翻译 回答以下数学问题20次你有3秒钟的时间来解决每个问题 为了保护服务器你不能在1秒内回答一个问题 您已回答0个问题 让我们3秒速算没那个实力提示说是写脚本之前从来没写过趁这次学习一下
NSSCTF | 在线CTF平台
看了这个大佬的思路很清晰
脚本 import re
import timeimport requests
patterndiv styledisplay:inline;color:#\w{6}(.*?)/div
urlhttp://node5.anna.nssctf.cn:28750/
sessrequests.session()
ressess.get(url)
time.sleep(1)
for i in range(30):time.sleep(1)resultre.findall(pattern,res.text)print(result)numfor i in range(len(result)-1):numresult[i]print(num)anseval(num)ressess.post(url,data{ans:ans})print(res.text)# time.sleep(1)这段代码使用Python编写实现了一个循环请求网页并进行简单计算的功能。下面是对代码逐行的解释 import语句导入了所需的模块time用于控制时间间隔requests用于发送HTTP请求re用于正则表达式匹配。 url变量存储了要请求的网页地址。 ses变量创建了一个会话对象用于发送HTTP请求。 reg变量使用正则表达式编译了一个匹配模式。该正则表达式用于提取网页响应中的某个标签内的内容。 进入无限循环通过不断地发送请求、提取标签内容、进行计算的过程直到得到符合条件的响应为止。 get变量使用会话对象发送GET请求并将响应保存到get.text中。 math变量使用之前编译的正则表达式匹配模式从网页响应中提取出需要的内容。 final变量使用.join(math)[:-1]的方式将提取到的内容拼接成字符串并去掉最后一个字符。 result变量使用eval(final)将提取到的内容作为表达式进行求值并转换为字符串。 time.sleep(1)暂停1秒以控制请求的时间间隔。 p变量使用会话对象发送POST请求将计算结果作为数据参数传递。 检查POST响应中是否包含NSS字符串。如果包含则打印响应内容并跳出循环。 再次暂停1秒以控制请求的时间间隔。 得到flag [NCTF 2018]Flask PLUS
看到了ssti注入 随便找了一个payload发现被过滤了到这里其实就可以用bp来fuzz测试 过滤的
__init__file__dict____builtins____import__getattros
看起来GG了很多方法被ban了之后几乎无法访问到我们所需要的方法。
这里我们注意到了__enter__方法查看其内容发现也有__globals__方法可用而且与__init__一模一样。
这里摘抄下一段stack overflow的一段话 __init__ (allocation of the class)__enter__ (enter context)__exit__ (leaving context) 因此__enter__仅仅访问类的内容但这已经可以达到我们所需要的目的了。
构造payload:
{{lipsum.__globals__[os][popen](ls /).read()}} cat flag [NSSRound#13 Basic]flask?jwt?
注册admin发现不行先随便注册一个
有一个拿flag 发现不行说不是admin 看到提示说是session伪造 看到了session但是没有key 在忘记密码的页面找到了flask的key
secretkey: th3f1askisfunny 解密session 猜测admin的user_id应该是1
进行session加密 抓包改session得到flag [FSCTF 2023]源码启动!
f12发现被禁了 ctrlu看源码 [GWCTF 2019]枯燥的抽奖
看到主页啥也没有扫一下看看
在js源代码里看到了check.php 源代码 就是伪随机数生成----伪随机数就是可预测的随机数
PHP mt_srand()函数 - 经验笔记mt_srand()函数
先用这个python脚本将字符转变为 数字 让工具去随机 str1abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ str220S7rgtCU9 str3 str1[::-1] length len(str2) res for i in range(len(str2)): for j in range(len(str1)): if str2[i] str1[j]: resstr(j) str(j) 0 str(len(str1)-1) break print(res) 得到的随机数
接下来去获取种子 然后 在 php7.1以上的环境运行
利用 https://github.com/Al1ex/php_mt_seed这个工具
先make一下让他可以运行 然后通过php_mt_seed这个脚本破解seed
出来了伪随机数 然后运行脚本 ?php mt_srand(380973312); $str_long1 abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ; $str ; $len1 20; for ($i 0; $i $len1; $i) { $str . substr($str_long1, mt_rand(0, strlen($str_long1) - 1), 1); } echo p idp1 . $str . /p; ? 得到flag