L3HCTF
L3HCTFwebbest_profile审计给出的源代码判断漏洞点大概率存在于ip_detail路由下的模版注入,查看给出的nginx配置文件中对于.js文件会缓存12h,可以通过注册x.js类型的用户名利用cache poisoning进行投毒,使ip_detail路由下访问127.0.0.1/get_last_ip后访问到的为我们投毒后具有恶意ip的页面并在后续进行渲染和回显对缓存投毒的学习总结步骤如下1.注册a.js用户,抓包改xff为我们进行模版注入的payload后访问get_last_ip路由进行缓存投毒{{7*7}} 2.访问ip_detail路由成功回显49 3.寻找可用类(此处由于尚未发现特殊符号如’在编码传入模版时会携带&导致报错故未能直接获取flag)X-Forwarded-For:{% for cls in [].__class__.__base__.__subclasses__() %}{% if cls.__init__.__globals__ %}...
htb渗透知识点整理
渗透常用命令linux cd: 切换目录 cd /home/user/a/b/cls: 列出目录内容 ls -lcp: 复制文件 cp 1.txt /home/user/amv: 移动文件 mv .txt /home/user/arm: 删除文件 rm -rf acat: 查看文件内容 cat /home/user/1.txtmore: 分页查看文件内容 more /home/user/1.txtless: 分页查看文件内容 less /home/user/1.txtping: 测试网络连接 ping baidu.comifconfig: 查看网络配置信息 ifconfigps: 查看当前运行的进程 ps auxkill: 结束指定的进程 kill -9 1234clear: 清除屏幕 clearshutdown: 关闭计算机 shutdown -h nowtee: 读取标准输入的数...
HNCTF
2025H&NCTF半成品login登录界面弱密码爆破admin admin123登录后得到提示 这个半成品的login界面还是太没意思了我把你想要的东西放 hacker***** 用户下了你登上去自己拿吧 而且似乎数据都是小写啊,太弱了! 注意:系统已修复SQL注入漏洞,请勿尝试非法访问 判断应该通过sql注入方式登录hacker*****用户获取flag尝试后在password处发现存在可用注入点,猜测后台查询语句如下SELECT * WHERE username = '' AND password = '' 利用%进行用户名模糊匹配,通过||(or)与and的优先级顺序直接登录hacker*****用户,payload如下username=hacker&password=fake%2527/**/||/**/username/**/like/**/%2527hacker%%2527# payload效果等效于SELECT * WHERE username = 'hacker' AND password=...
HASHCTF
HASHCTF WPwebbbbb这鸡汤不十分滴美味访问后是一个mc主题的交易界面,审计给出的app.js和route.js可以得到大体获得flag的思路flag在最后一个价值为88绿宝石的商品的回显上首先获取足够的绿宝石来兑换商品,这里只提供了劫掠码这一种方法,同时还设置了一天只能兑换一次的限制123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051router.get('/raid', isAuth, async (req, res) => { try { const user = await User.findById(req.user.userId); if (!user) { return res.render('error', { Authenticated: true, message: '...
GHCTF
GHCTFwebupload?SSTI!主要就是过滤了['_', 'os', 'subclasses', '__builtins__', '__globals__','flag',],可以利用{%set xhx=(lipsum|string|list)|attr('pop')(3*8)%}获取下划线,拼接获取'os','__builtins__', '__globals__',chr函数获取flag。 123456789101112131415161718192021{%set one=dict(c=a)|join|count%}{%set two=dict(cc=a)|join|count%}{%set three=dict(ccc=a)|join|count%}{%set four=dict(cccc=a)|join|count%}...
HGAME 2025
HGAME 2025webLevel 24 Pacman进去是个吃豆人游戏,game,game!!!!!!!!!!!!!!!!!!!!!!!,达到1w分给flag,这种一般是前端网页游戏,可以去f12的网络栏验证,如果你没有寄了还没有网络请求就是纯前端,这里就是然后先寄一次,爆了个一眼base64的假flag,这里直接去前端的2个js文件里面查找这个字符串,然后成功找到,分析其所在的函数,虽然被混淆,但是还是能看懂是结算判定,同时还有1w的16进制在语句中,所以真flag一定在这里再仔细看发现了_SOCRE这个参数,直接去控制台修改,然后再寄掉就是真flag了 _SOCRE=10000 然后就是解码flag了,首先肯定是base64解码,得到一个有点像flag的字符串,观察发现hgame前缀是有的,不过被拆开了,跳着读发现规律,其实就是栅栏密码,即将字符串分成2栏,然后竖着读,解码得到flagLevel 47 BandBomb页面是个文件上传功能,查看源代码后发现除了上传就是修改名字,一开始先试了试一句话木马,然后发现读取不了uploads路径,但是背景图在的静态资源...
BUUCTF
[强网杯 2019]随便注首先用引号是否要闭合判断是字符型,同时发现#被过滤,所以选用–+,尝试常规的注入流程发现select被过滤,大小写绕过也不行. return preg_match(“/select|update|delete|drop|insert|where|./i”,$inject); 于是尝试堆叠注入是否可行。 =1’;show databases –+ 发现可行,于是继续爆表名。 =1’;show tables –+ 爆出两个表”1919810931114514”和”words”,于是尝试爆列名. =1’;show columns from 反引号1919810931114514反引号 –+(这里要注意纯数字作为表名要加反引号``) 爆出flag的数据名,尝试脱库,因为select被过滤,所以尝试handler命令进行脱库。 handler命令是mysql专有的一个查询表数据的函数,但是不如select功能强大。基本语法:handler table_name OPEN 打开表handler...
ctfhub
CTFHub1.CTFHub目录遍历使用BP进行目录遍历,找到flag。 2.CTFHub备份文件下载1)网站源码题目给出了很多备份文件的可能的名字,一个个试不太现实,所以用御剑扫描端口,发现有www.zip的页面,访问得到备份文件,然后看到flag的txt文件中没有flag,先去备份文件中尝试访问,发现不行,然后去网页中访问,得到flag。 2)bak文件bak文件第一个题给我们说了他是备份文件后缀名之一,题目又说flag在index.php中,所以访问index.php.bak得到备份文件,进而得到flag。 3)vim缓存搜索vim缓存文件后缀名为.swp,然后直接访问index.php.swp,发现不行,然后继续搜索,得到.swp文件为隐藏文件,需要以.index.php.swp访问,然后得到备份文件,winhex打开得到flag。 4).DS_Store题目提示.DS_Store即为隐藏文件清单,访问下载后用winhex打开,找到flag对应位置,看到上面一串字符,想到可能要访问,但是一开始没看出来中间的.txt后缀,导致试了好多次,看出来之后就成功访问得到flag。(...
