欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

bugku 1~11题 write up(web)

程序员文章站 2022-05-14 08:42:21
...

一、第一题(web2)

查看源代码,查找flag,即可得出flag。

二、第二题(计算器)

bugku 1~11题 write up(web)
输入163,发现只能输入一位数。位数被限制了。我们使用火狐浏览器的开发者工具(F12)调出来。定位到输入框的位置。发现
bugku 1~11题 write up(web)
最大位数被限制了,把1改成3即可得出flag。

三、第三题(web基础$_GET)

打开题目发现是PHP代码,阅读代码可知,我们在URL中传入参数?what=flag即可得出flag

四、第四题(web基础$_POST)

打开题目发现是PHP代码,阅读代码可知,需要使用POST方式传值。
使用火狐浏览器的hackbar插件,如图
bugku 1~11题 write up(web)

五、第五题(矛盾)

先介绍下is_numeric()函数:
is_numeric() 函数用于检测变量是否为数字或数字字符串。
PHP 版本要求:PHP 4, PHP 5, PHP 7
如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE。

分析代码,可知,num必须==1,但是又不能是数字或者是数字字符串。
==又表示只要值相等就可以了。那么我们可以在输入num=1XXX,xxx表示非数字。
bugku 1~11题 write up(web)

六、第六题(web3)

1、进入题目发现一直在弹窗,点了几遍确定后感觉被耍了。
2、阻止弹窗查看源码。发现flag在最后一行的alert标签里。且被注释掉
3、发现flag是&#x类型的,这是unicode编码。不知道也没事,百度下就可以知道
4、百度搜索unicode在线解码,就可以得出flag。

七、第七题(域名解析)

看到题目域名解析我们就要想到hosts文件。
我们打开hosts文件
hosts文件位置C:\Windows\System32\drivers\etc
在文件末尾加入123.206.87.240 flag.baidu.com
bugku 1~11题 write up(web)
在浏览器中输入flag.baidu.com或者123.206.87.240 即可得出flag
bugku 1~11题 write up(web)

八、第八题(必须让他停下来)

打开题目发现一直在刷新,
观察源码,发现flag应该在图片刷出来的时候出现。我们使用burp suit进行抓包放包,经过了j几次(GO)操作之后,我们发现了flag.

九、第九题本地包含

观察代码发现flag.php被隐藏起来了。
尝试下传入参数?hello=hello,发现hello在下面代码中体现
bugku 1~11题 write up(web)
这样我们就可以直接传入参数输出flag.php文件的内容,发现flag。
传入的参数是?hello=file(“flag.php”)
bugku 1~11题 write up(web)

十、第十题(变量1)

bugku 1~11题 write up(web)
观察源码发现代码最后一行有个可变变量。
bugku 1~11题 write up(web)
我们让args=GLOBALS 全局数组变量

因为$args=GLOBALS 又var_dump($$args) ,所以和前面那个$ ,组成$GLOBALS
flag变量又在$GLOBALS中,var_dump  eval  成功得到flag

bugku 1~11题 write up(web)

$GLOBALS介绍

  1. $GLOBALS['var']是外部的全局变量本身,在函数内部可以使用$GLOBALS数组调用
    2.作用域:Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。
  2. $GLOBALS超全局数组适用于任何地方

十一、第十一题(web5)

bugku 1~11题 write up(web)
首先介绍下JSPFUCk
JSFuck(或为了避讳脏话写作 JSF*ck )是一种深奥的 JavaScript编程风格。以这种风格写成的代码中仅使用 [、]、(、)、! 和 + 六种字符。此编程风格的名字派生自仅使用较少符号写代码的Brainfuck语言。与其他深奥的编程语言不同,以JSFuck风格写出的代码不需要另外的编译器或解释器来执行,无论浏览器或JavaScript引擎中的原生 JavaScript 解释器皆可直接运行。鉴于 JavaScript 是弱类型语言,编写者可以用数量有限的字符重写 JavaScript 中的所有功能,且可以用这种方式执行任何类型的表达式。
简单地说,就是有人不想让自己的代码被别人认出来,用6种字符改造了自己的js代码

我们查看源码发现有一堆的 [、]、(、)、! 和 + ,把他们扔进浏览器控制台(火狐浏览器按F12打开控制台)进行调试,即可得出flag,记得要大写。