bugku Web4


首先进入题面就是常见的提交框,老规矩直接查看源代码


在这里我们发现了有个js它定义了两个变量并采用eval函数算一些什么东西

var p1 = '%66%75%6e%63%74%69%6f%6e%20%63%68%65%63%6b%53%75%62%6d%69%74%28%29%7b%76%61%72%20%61%3d%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%22%70%61%73%73%77%6f%72%64%22%29%3b%69%66%28%22%75%6e%64%65%66%69%6e%65%64%22%21%3d%74%79%70%65%6f%66%20%61%29%7b%69%66%28%22%36%37%64%37%30%39%62%32%62';
 var p2 = '%61%61%36%34%38%63%66%36%65%38%37%61%37%31%31%34%66%31%22%3d%3d%61%2e%76%61%6c%75%65%29%72%65%74%75%72%6e%21%30%3b%61%6c%65%72%74%28%22%45%72%72%6f%72%22%29%3b%61%2e%66%6f%63%75%73%28%29%3b%72%65%74%75%72%6e%21%31%7d%7d%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%22%6c%65%76%65%6c%51%75%65%73%74%22%29%2e%6f%6e%73%75%62%6d%69%74%3d%63%68%65%63%6b%53%75%62%6d%69%74%3b';
 eval(unescape(p1) + unescape('%35%34%61%61%32' + p2)); 

额..排版有点难看

不过很明显两个变量都是url编码 我们解密下可以得到

p1=function checkSubmit(){var a=document.getElementById("password");if("undefined"!=typeof a){if("67d709b2b

p2=aa648cf6e87a7114f1"==a.value)return!0;alert("Error");a.focus();return!1}}document.getElementById("levelQuest").onsubmit=checkSubmit;

然后我们分析


eval(unescape(p1) + unescape('%35%34%61%61%32' + p2)); 
里面还有一段url编码 老规矩解密下得到54aa2

于是我们把三次的结果拼装起来得到p1=function checkSubmit(){var a=document.getElementById("password");if("undefined"!=typeof a){if("67d709b2b54aa2aa648cf6e87a7114f1"==a.value)return!0;alert("Error");a.focus();return!1}}document.getElementById("levelQuest").onsubmit=checkSubmit;

然后便得到值67d709b2b54aa2aa648cf6e87a7114f1放入输入框即可获得flag


如有疑问请联系QQ:834368404

### Bugku WEB项目源码及其通过Githack在线查看的方法 #### 使用Githack访问Bugku WEB项目的源码 Githack 是一种无需克隆即可浏览 GitHub 上托管的仓库内容的服务。它允许开发者直接通过浏览器加载并查看基于分支的内容,而不需要下载整个仓库到本地环境。如果 BugkuWEB 项目已经公开发布在 GitHub 平台上,则可以通过 Githack 提供的 URL 构造方法来实现在线预览。 假设 BugkuWEB 项目位于 `https://github.com/username/repo` 中,那么可以按照以下方式构建 Githack 访问链接: ```plaintext https://githack.com/username/repo/branch/file.html ``` 其中: - **username**: 表示拥有该仓库的用户名。 - **repo**: 表示具体的仓库名称。 - **branch**: 可选参数,默认为主分支(通常是 main 或 master),也可以指定其他分支名。 - **file.html**: 要打开的具体 HTML 文件路径[^1]。 例如,如果你知道 Bugku 的某个页面入口文件叫作 index.html,并且存放在名为 bugku-web 的公共仓库里,就可以尝试输入如下地址进入可视化界面: ```plaintext https://githack.com/Bugku/bugku-web/main/index.html ``` 需要注意的是,只有当目标资源确实存在于上述位置时此操作才会成功;否则会返回错误提示或者空白页。 #### 关于`.gitignore`配置对于查找源代码的影响 有时即使找到了正确的仓库URL也可能看不到完整的实际开发资料列表,这是因为部分敏感数据可能被设置进了 `.gitignore` 文件从而排除在外不上传至远程服务器上共享给公众查阅。比如 Android 应用程序中的私密 API 密钥或者其他机密信息通常都会被列入忽略清单以防泄露风险 [^2] 。因此,在探索开源项目的时候遇到某些目录缺失的情况并不罕见也不必惊讶。 另外值得注意的一点是并非所有的软件工程都采用官方推荐的标准命名惯例去管理它们各自的版本控制系统元数据区域(即 .git/) ,所以有时候即便我们能够定位到疑似的目标站点却仍然无法获取确切的技术细节文档等内容也是有可能发生的。 #### 备选方案:利用第三方平台搜索Android源码实例 除了借助像GitHub这样的主流社交编码服务平台之外还有专门针对移动操作系统领域设立起来的一些大型综合型技术档案馆可供检索查询安卓应用程序底层架构设计原理方面的知识素材。例如 http://grepcode.com 就曾经是一个非常受欢迎的选择之一用于研究Java语言扩展包以及Google官方发布的原生API接口定义说明等等材料 [^3] 。不过遗憾的是该项目现已停止维护更新服务了。但对于历史遗留下来的经典案例分析学习而言仍旧具有一定的参考价值意义所在。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值