【Web】Webhacking.kr旧版第五题
积分:30
进题能看到两个按钮。先按一下Login。
按Login后我们能被带到新的directory。我随便拿“knowmysin”和“1234”来试一试。
反而按join的话会有个提示说禁止访问。那看一下原页的源码。
看来Join是个假的按钮。那好像根本没法用正规方法来登入系统。这时候我们需要发挥一点机智说白了就是蒙。因为login按钮把我们带到login.php,我们可以推测join在mem/join.php。
果然真有。一进去会有个alert写着bye。但他不会立马把我们送到原本的页面,反而会停留在一片黑色的空页面。
那看看源码是否也是空着的。
果然里面由内容。但这个一眼很难看出来是什么东西。我来整理一下源码的Java Script部分。
(在Whale浏览器上可以按Edit as HTML来复制所有内容。)
l = 'a';
ll = 'b';
lll = 'c';
llll = 'd';
lllll = 'e';
llllll = 'f';
lllllll = 'g';
llllllll = 'h';
lllllllll = 'i';
llllllllll = 'j';
lllllllllll = 'k';
llllllllllll = 'l';
lllllllllllll = 'm';
llllllllllllll = 'n';
lllllllllllllll = 'o';
llllllllllllllll = 'p';
lllllllllllllllll = 'q';
llllllllllllllllll = 'r';
lllllllllllllllllll = 's';
llllllllllllllllllll = 't';
lllllllllllllllllllll = 'u';
llllllllllllllllllllll = 'v';
lllllllllllllllllllllll = 'w';
llllllllllllllllllllllll = 'x';
lllllllllllllllllllllllll = 'y';
llllllllllllllllllllllllll = 'z';
I = '1';
II = '2';
III = '3';
IIII = '4';
IIIII = '5';
IIIIII = '6';
IIIIIII = '7';
IIIIIIII = '8';
IIIIIIIII = '9';
IIIIIIIIII = '0';
li = '.';
ii = '<';
iii = '>';
lIllIllIllIllIllIllIllIllIllIl = lllllllllllllll + llllllllllll + llll + llllllllllllllllllllllllll + lllllllllllllll + lllllllllllll + ll + lllllllll + lllll;
lIIIIIIIIIIIIIIIIIIl = llll + lllllllllllllll + lll + lllllllllllllllllllll + lllllllllllll + lllll + llllllllllllll + llllllllllllllllllll + li + lll + lllllllllllllll + lllllllllllllll + lllllllllll + lllllllll + lllll;
if (eval(lIIIIIIIIIIIIIIIIIIl).indexOf(lIllIllIllIllIllIllIllIllIllIl) == -1) {alert('bye');throw "stop";
}
if (eval(llll + lllllllllllllll + lll + lllllllllllllllllllll + lllllllllllll + lllll + llllllllllllll + llllllllllllllllllll + li + 'U' + 'R' + 'L').indexOf(lllllllllllll + lllllllllllllll + llll + lllll + '=' + I) == -1) {alert('access_denied');throw "stop";
} else {document.write('<font size=2 color=white>Join</font><p>');document.write('.<p>.<p>.<p>.<p>.<p>');document.write('<form method=post action=' + llllllllll + lllllllllllllll + lllllllll + llllllllllllll + li + llllllllllllllll + llllllll + llllllllllllllll +'>');document.write('<table border=1><tr><td><font color=gray>id</font></td><td><input type=text name=' + lllllllll + llll + ' maxlength=20></td></tr>');document.write('<tr><td><font color=gray>pass</font></td><td><input type=text name=' + llllllllllllllll + lllllllllllllllllllllll + '></td></tr>');document.write('<tr align=center><td colspan=2><input type=submit></td></tr></form></table>');
}
这大概就是里面写着的内容。不想手动雅化Js的话可以用beautify.js也可以。【1】一看就能看出上半部是个Hash Table,下半部是代码混淆(Code Obfuscation)过的的script。这个我建议手动翻译,或者用一下Console。甚至上两句跟后面完全不一样。编程来解除代码混淆的话还需要编两种函数。总而言之,解除代码混淆后的JavaScript大概是这个样子。
oldzombie = oldzombie
document.cookie = document.cookie
if (eval(document.cookie).indexOf(oldzombie) == -1) {alert('bye');throw "stop";
}
if (eval(document.URL).indexOf(mode=1) == -1) {alert('access_denied');throw "stop";
} else {document.write('<font size=2 color=white>Join</font><p>');document.write('.<p>.<p>.<p>.<p>.<p>');document.write('<form method=post action='join.php'>');document.write('<table border=1><tr><td><font color=gray>id</font></td><td><input type=text name='id' maxlength=20></td></tr>');document.write('<tr><td><font color=gray>pass</font></td><td><input type=text name='pw'></td></tr>');document.write('<tr align=center><td colspan=2><input type=submit></td></tr></form></table>');
}
首先,前面的两个if要求我们带着oldzombie的COOKIE和mode=1的GET来访问这个页面,否则不显示。那我们就按它的要求来加一下这些东西。
按要求做的话我们会看更新的页面。更新后的页面如下。我随便拿我的id和“1234”来试试注册。
系统显示说注册成功,我就以为这题就已经解决完了。
可是系统突然说只有admin能进入这个页面。所以我回到Join.php拿“admin”和“1234”重新试了一次。
但系统说已经有这个ID。
这时候我们需要试试各种方法。作为一个网络安全专家,%20(空白)、%00(NULL)、空白这些我们都需要试一试。最终,我发现的漏洞是空白。在admin前面加个空白就可以。虽然“ admin”这个账号会正常登入到后台的DB,但“ admin”和“admin”在PHP的strcmp阶段是一样的。(关于具体用的是strcmp()还是==、还是===、还是其他的,这个因为系统不显示所以很难断定。但我们可以推测是==因为这个漏洞最多。)这也是PHP衰落的原因。关于PHP Comparison Vulnerability,可以参考一下日暮途远的PHP弱类型比较(松散比较)方面的漏洞。
当然由于上述原因,输入id的时候我们同样需要在id最前面加个空号。
成功页面
参考内容:
【1】脚本之家在线工具——JavaScript在线格式化工具(基于beautify.js插件)
【Web】Webhacking.kr旧版第五题相关推荐
- Web实现:旧版微博个人页整体实现
微博已经改版了,这部分代码还是很久之前写的,旧版的个人主页,分享一下. HTML部分: <!DOCTYPE html> <html lang="en">&l ...
- 04737 c++ 自学考试2019版 第五章程序设计题 1
/* * 04737 c++ 自学考试2019版 第五章课后练习 * 程序设计题 1 * 需求:交通工具包含汽车,汽车又包含..... */#include<iostream> #incl ...
- 《C语言程序设计》谭浩强 第五版 编程10题解答2
<C语言程序设计>谭浩强 第五版 编程10题解答2 11.素数计算 编写程序计算500-800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,再计算其间隔减.加之和,即第1个素数- ...
- 儿歌点点 换歌不算题 旧版 历史版本
儿歌点点 换歌不算题 旧版 历史版本 edit 2.4.28版本之后,打开未看过的儿歌需要算题,这个对于1-4岁的宝宝显然不合适,对于老人看那么小的键盘也是不合适,希望儿歌点点官方能修改下策略. 这里 ...
- java孙膑与庞涓_一个很难的数学问题(智力140以下勿进)
旧版Java程序设计Page97 3.12题
庞涓...
一个很难的数学问题(智力140以下勿进) 旧版Java程序设计Page97 3.12题 庞涓 2016-08-23 0 0 0 暂无评分 其他 1 积分下载 如何获取积分? 一个很难的数学问题(智力1 ...
- 【JavaScript 逆向】猿人学 web 第五题:乱码增强
案例目标 网址:第五题 js 混淆 乱码增强 - 猿人学 本题目标:抓取全部 5 页直播间热度,计算前 5 名直播间热度的加和 常规 JavaScript 逆向思路 一般情况下,JavaScript ...
- 博大考神》2006版之Word2003题库版操作提示
<博大考神>2006版之Word2003题库版操作提示 作者:- <script src="http://www.2008red.com/red_vip/articlehi ...
- 每日五题-202112
[12.01 周三] 今日五题: 1.你正在管理人力资源薪资系统的设计和开发.由于项目的复杂性,你使用 Scrum 来帮助你管理此项目.你的项目需要以公告和消息的形式与大量受众进行沟通.在这种情况下 ...
- 每日五题-202111
[11.01 周一] 1.一个项目已经失控,项目经理正试图重新控制它并对项目范围进行了一些更改.其中一些变更导致进一步的变化,项目成本上升,项目进度也超出计划.这称为: A.项目蠕变 B.范围上升 ...
- 癌症新知和癌症真相的区别_旧版代码是癌症
癌症新知和癌症真相的区别 It's far too often that I see people shying away from newest technologies in the spirit ...
最新文章
- Oracle定时执行存储过程
- ASP.NET 网页- WebGrid 帮助器简介
- 关于R语言的一些编程经验
- windows中以管理员身份运行cmd
- 为什么Java中只有值传递?
- 5分绩点转4分_工作复盘|因为这5点,4月份目标没完成
- python requests form data_Python爬虫:Request Payload和Form Data的简单区别说明
- linux命令行快捷命令及vim常用快捷命令
- Spring MVC学习总结(7)——Spring MVC整合Ehcache缓存框架
- 【云周刊】第200期:云栖专辑 | 阿里开发者们的第6个感悟:享受折磨
- vmware linux虚拟机中添加硬盘
- PyTorch以及VGG模型
- 终极大招~pycharm自动补全opencv代码提示功能
- 【分享】 [教学]破解完全入门篇
- 互联网单点登录集成方案
- 信息学奥赛一本通:1084:幂的末尾
- 【运筹优化】Python调用OR-Tools求解TSP问题
- 认识哈希函数和哈希表
- 科技型中小企业认定标准
- 力天创见客流计数方案
热门文章
- 【安信可首款4G模组CA-01直连阿里物联网平台②】一机一密认证方式连接
- 英语3500词(七)dating主题(2022.1.19)
- esp8266调用心知天气
- CoMP 协同多点传输技术
- QT的按钮设置图标及设置透明
- Pytorch入门实战(7):基于BERT实现文本隐喻二分类(Kaggle入门题目)
- 深度神经网络识别垃圾邮件
- 服务器raid5阵列硬盘故障的解决办法
- vue3使用keep-alive页面切换时报错:TypeError: parentComponent.ctx.deactivate is not a function
- 提升思考力的8种日常训练法