【CTF web入门第三篇】我在bugku 的web入门

  • A+
所属分类:逆向工程

                               我在bugku 的web入门 

【CTF web入门第三篇】我在bugku 的web入门



今日入门13题

【CTF web入门第三篇】我在bugku 的web入门


bugku-ctf 第一题:web2

【CTF web入门第三篇】我在bugku 的web入门


复制链接,打开http://123.206.87.240:8002/web2/

【CTF web入门第三篇】我在bugku 的web入门



打开后是一个动图,看的我眩晕

对于一个小白来说,看到这个图真的是一脸懵。。。。。。

然后想到我前天分享的,ctf web常见解题思路:直接查看页面源代码,既可以找到flag

F12,果然

【CTF web入门第三篇】我在bugku 的web入门

flag KEY{Web-2-bugKssNNikls9100}

 

bugku-ctf 第二题:计算器

【CTF web入门第三篇】我在bugku 的web入门

依然是打开地址

【CTF web入门第三篇】我在bugku 的web入门

是一个计算器,59+72,填写答案验证

填写答案时发现只能输入一个数字

【CTF web入门第三篇】我在bugku 的web入门

查看页面源码,看前段限制。F12

【CTF web入门第三篇】我在bugku 的web入门

限制长度,把数字1改大,我们改成10

【CTF web入门第三篇】我在bugku 的web入门

然后再填写59+73的答案

【CTF web入门第三篇】我在bugku 的web入门

任何前端的限制都是不安全的

得到flag{CTF-bugku-0032}

 

bugku-ctf 第三题:web基础$_GET

【CTF web入门第三篇】我在bugku 的web入门

依旧是访问连接

【CTF web入门第三篇】我在bugku 的web入门

这个确实是基础,在get请求时,传入参数形式是在url后面加  ?参数=值。多个参数用  ?参数1=1&参数2=1……

源代码含义:

$what=$_GET['what'];//读取参数what,把值存到变量what里

echo$what;     //输出

if($what=='flag')//如果值是flag

echo 'flag{****}';//打印flag

 

payload

1

http://123.206.87.240:8002/get/?what=flag

【CTF web入门第三篇】我在bugku 的web入门

flag{bugku_get_su8kej2en}

 

bugku-ctf 第四题:web基础$_POST

【CTF web入门第三篇】我在bugku 的web入门

这个题可以和上一个联系起来,上一个是get请求,这个是post请求。

POST请求没办法写在url里,需要用hackbar或者burp修改,格式就是在最下面Content里写 参数1=&参数2=

 

如果用hackbar就没这么麻烦了,直接在框里填就行。

【CTF web入门第三篇】我在bugku 的web入门

flag{bugku_get_ssseint67se}

 


bugku-ctf 第五题:矛盾

【CTF web入门第三篇】我在bugku 的web入门

http://123.206.87.240:8002/get/index1.php

依旧是打开连接

【CTF web入门第三篇】我在bugku 的web入门

$num=$_GET['num']; //获取参数num

if(!is_numeric($num))// 如果num不是数字

{

echo $num;

if($num==1)    //如果num是数字1

echo 'flag{**********}'; //打印flag

}

 

这个要求不是数字且为1,有点矛盾是不是?其实有绕过的办法。下面num==1的判定是两个等号,这是弱类型比较,如果等号两边类型不同,会转换成相同类型再比较。与之对应的是强类型比较,用的是三个等号===,如果类型不同就直接不相等了。在弱类型比较下,当一个字符串与数字比较时,会把字符串转换成数字,具体是保留字母前的数字。例如123ab7c会转成123ab7c会转成0.(字母前没数字就是0

 

所以payload:

http://123.206.87.240:8002/get/index1.php?num=1a

【CTF web入门第三篇】我在bugku 的web入门

flag{bugku-789-ps-ssdf}



bugku-ctf 第六题:web3

【CTF web入门第三篇】我在bugku 的web入门

依旧是打开连接

【CTF web入门第三篇】我在bugku 的web入门

查看页面源代码发现有一串这样的字符串

【CTF web入门第三篇】我在bugku 的web入门


KEY{J2sa42ahJK-HS11III}
#104;JK-HS11III}

复制出来粘贴到burp自带的decoder里,在decode as HTML,就能解码出flag

【CTF web入门第三篇】我在bugku 的web入门

KEY{J2sa42ahJK-HS11III}


bugku-ctf 第七题:域名解析

【CTF web入门第三篇】我在bugku 的web入门

域名解析是指把一个域名指向一个ip,就像通讯录把姓名指向一个电话一样,可以免去记数字的麻烦。

 

ip访问,抓包,把host字段直接改成域名。

【CTF web入门第三篇】我在bugku 的web入门

【CTF web入门第三篇】我在bugku 的web入门

得到flagKEY{DSAHDSJ82HDS2211}



bugku-ctf 第八题:你必须让他停下

【CTF web入门第三篇】我在bugku 的web入门

访问域名http://123.206.87.240:8002/web12/

【CTF web入门第三篇】我在bugku 的web入门

正常在浏览器里是没办法停的,但是可以在burp里达到单步执行的效果

 

抓包后发到repeater,每点一次Go就会刷新,等到右边相应<img src="10.jpg" alt="【CTF web入门第三篇】我在bugku 的web入门"时就可以显示flag了,多刷新几次就好了

但是我并没有抓取成功。

 

还有一个办法就是用Burpsuite看他的每个数据包:

【CTF web入门第三篇】我在bugku 的web入门

flag{dummy_game_1s_s0_popular}

 

 

bugku-ctf 第九题:变量1

【CTF web入门第三篇】我在bugku 的web入门

http://123.206.87.240:8004/index1.php

 

打开后得到代码如下

【CTF web入门第三篇】我在bugku 的web入门

这是一个代码审计的题目

需要传入有个args参数,通过eval来执行var_dump来打印一些东西。但是它打印的是$$args而不是$args。

对‘$$args'的分析:

 

example

1 <?php
2 $plan = 'Binary';        //变量plan的值为'Binary'的字符串
3 $Binary = 'handsome';    //再把变量plan的值设为一个变量的变量名,而这个变量的值为'handsome'
4 echo $$plan.'</br>';     //打印$$plan,其实就相当于打印$[$plan]=$[Binary]='handsome'
5 echo $Binary.'</br>';    //打印$Binary,其结果为'handsome'和上一行的打印结果一样

 

有了这个例子,就可以操作了。传入的是args参数,而传入的参数将会被当作一个变量名并打印它的变量值。比如传入一个x。则有$args=x,而执行var_dump($$args)时相当于执行var_dump($x),而此时程序里没有x这个变量,所以就会返回一个NULL值显示在浏览器上,这变量没有意义。所以传入的参数得是一个有意义的变量,PHP恰好有这类似的东西,如$GLOBALS,$_GET,$POST...$GLOBALS这个变量存储了所有的变量。所以传入参数‘args=GLOBALS'var_dump()将打印$GLOBALSflag就在返回的结果中。

 

http://123.206.87.240:8004/index1.php?args=GLOBALS

 

【CTF web入门第三篇】我在bugku 的web入门

flag{92853051ab894a64f7865cf3c2128b34}

 

bugku-ctf 第十题:web5

 

【CTF web入门第三篇】我在bugku 的web入门

访问http://123.206.87.240:8002/web5/

看一看源代码吧,有一行非常奇怪的由+[]()!组成的代码,查了一下,这种东西似乎叫做jspfuck(呼应题目)

 

JSFuck(或为了避讳脏话写作 JSF*ck )是一种深奥 JavaScript编程风格。以这种风格写成的代码中仅使用 []()!  + 六种字符。此编程风格的名字派生自仅使用较少符号写代码的Brainfuck语言。与其他深奥的编程语言不同,以JSFuck风格写出的代码不需要另外的编译器解释器来执行,无论浏览器JavaScript引擎中的原生 JavaScript 解释器皆可直接运行。鉴于JavaScript 弱类型语言,编写者可以用数量有限的字符重写 JavaScript 中的所有功能,且可以用这种方式执行任何类型的表达式。

 

简单地说,就是有人不想让自己的代码被别人认出来,用6种字符改造了自己的js代码,浏览器居然还能识别(惊了)

所以说直接把这段奇怪的代码扔进chrome控制台,就可以得到flag了(记得要全变成大写

【CTF web入门第三篇】我在bugku 的web入门

【CTF web入门第三篇】我在bugku 的web入门

ctf{whatfk}

字母大写:CTF{WHATFK}

 

bugku-ctf 第十一题:头等舱

访问http://123.206.87.240:9009/hd.php

【CTF web入门第三篇】我在bugku 的web入门

打开链接,什么都没有,真的是什么都没有

查看源代码也是什么也没有

【CTF web入门第三篇】我在bugku 的web入门

那就抓包看看

【CTF web入门第三篇】我在bugku 的web入门

也没有,emm
再回去看看题目,头等舱,头等舱,头等舱,响应头???!!!
放到Repeater里面,Go以下,Response里面已经出来flag

【CTF web入门第三篇】我在bugku 的web入门


flag{Bugku_k8_23s_istra}

 

 

bugku-ctf 第十二题:网站被黑

 

http://123.206.87.240:8002/webshell/

【CTF web入门第三篇】我在bugku 的web入门

打开链接是一个黑页,链接后面加index.php判断是PHP,而题目提示实战中经常遇到,那就开御剑扫描后台吧

 

【CTF web入门第三篇】我在bugku 的web入门

扫描出shell.php,打开链接是一个webshell,尝试admin等弱密码无效后

【CTF web入门第三篇】我在bugku 的web入门

burp进行爆破,这里选择Simple list,字典选择burp自带的Passwords

【CTF web入门第三篇】我在bugku 的web入门

成功爆破,密码就是hack

【CTF web入门第三篇】我在bugku 的web入门

登录webshellflag出现

【CTF web入门第三篇】我在bugku 的web入门

flag{hack_bug_ku035}



bugku-ctf 第十三题:管理员系统

【CTF web入门第三篇】我在bugku 的web入门

http://123.206.31.85:1003/

登陆界面

【CTF web入门第三篇】我在bugku 的web入门

习惯性先看看页面源码吧,发现一段Base64,解码得test123

【CTF web入门第三篇】我在bugku 的web入门

因为是管理员,账号必然是admin,密码解密test123.

登陆下提示ip已经被限制

【CTF web入门第三篇】我在bugku 的web入门

看到ipban,就想在网上查一下怎样伪造ip地址,然后在网上查到了X-FORWARDED-FOR:127.0.0.1

输入账号密码admin test123,然后Burpsuite抓包

在数据包中加入X-Forwarded-For: 127.0.0.1,得到flag

【CTF web入门第三篇】我在bugku 的web入门

85ff2ee4171396724bae20c0bd851f6

flag{85ff2ee4171396724bae20c0bd851f6b}

 


本文始发于微信公众号(LemonSec):【CTF web入门第三篇】我在bugku 的web入门

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: