http://reversing.kr/challenge.php

http://reversing.kr/download.php?n=6

1.先静态找弹窗下断点,再动态,否则动态可能找不到

2.看对比和偏移判断文件大小,然后判断哪个是flag文件,数据窗口跟随+计算offset shift选中复制

提取出一个90000字节的图片文件

3.显示图片内容可以使用python

import tkinter
file = open("test.bmp", 'rb')
lists = file.readline()
height = 150
weight = 200
top = tkinter.Tk()
c = tkinter.Canvas(top, bg='white')
for y in range(height):
    for x in range(weight):
        p = (y*weight + x)*3
        if(lists[p]==0):
            c.create_line((x, y, x+1, y+1))
c.pack()
top.mainloop()

网络信息安全攻防学习平台

1.基础关

第一题:看源码

第二题:再加密一次得到明文,所使用的是rot-13加密 

        rot-13  :对任何字元x:ROT13(ROT13(x))=ROT26(x)=x

                换句话说,两个连续的ROT13应用函式会回复原始文字(在数学上,这有时称之为对合(involution);在密码学上,这叫做对等加密(reciprocalcipher))。

        

第三题:base64连续解密,网上工具还得复制粘贴,吭哧吭哧花了半个小时写了个shell脚本

    把密文存到文件中        
    输入: 脚本名 文件名 解密次数

    虽然直接出结果的比较帅,这样还得猜,不过这个脚本修改一下就可以变成随意加密指定次数的功能(就是出题人用的脚本)

#!/bin/bash

base=`cat $1`
count=$2
echo $base|base64 -d
while [ $count -gt 0 ]
do
        ((count--))
        base=`echo $base|base64 -d`
        echo -e "\nTimes:"$count
        echo $base|base64 -d
done

第四题:上cmd5破解

第五题:抓包Accept-Language改成en_US之类的就行了,翻墙不管事

第六题:抓包User-Agent改成HAHA

第七题:抓返回的包可以看到Key在返回头里

HTTP/1.1 200 OK
Server: sae
Connection: keep-alive
Date: Mon, 13 Feb 2017 08:17:39 GMT
Content-Type: text/html
Key: kjh%#$#%FDjjj
Via: 1522
X-Daa-Tunnel: hop_count=1
Content-Length: 201

第八题:依然是抓包

    先访问search_key.php

    发现直接用鼠标点会转到 index_no_key.php

    因为设置了302,key你还没看到就跳走了

    抓包在302报文中找到./key_is_here_now_.php

    再去访问此页面

HTTP/1.1 200 OK
Server: sae
Connection: keep-alive
Date: Mon, 13 Feb 2017 08:21:44 GMT
Content-Type: text/html
Via: 1548
X-Daa-Tunnel: hop_count=1
Content-Length: 16

key: ohHTTP302dd

第九题:还是抓包,Burp的repeater是个好东西

    访问后发现返回报文头中有Set-Cookie: Login=0

    那就修改发送头。加入Cookie: Login=1,得到key

        key is: yescookieedit7823789KJ

第十题:html标签设置了最大长度为3,改。这个题再抓包就麻烦了

第十一题:题目失效了,现在直接看源码就行

    应该也是抓包修改

    在请求包中构造一个X-Forwarded-For:127.0.0.1

<?php 
//print_r($_SERVER);
$arr=explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
if($arr[0]=='127.0.0.1'){
    //key
    echo "key is ^&*(UIHKJjkadshf";
}else{
	echo "必须从本地访问!";

第十二题:拿御剑扫没扫出来,原来可以在robots.txt里翻翻-,-从此开启了新世界的大门

User-agent: *
Disallow: /
Crawl-delay: 120
Disallow: /9fb97531fe95594603aff7e794ab2f5f/
Sitemap: http://www.hackinglab.sinaapp.com/sitemap.xml

2.脚本关

第一题:抓包得到

<script>window.location="./no_key_is_here_forever.php"; </script>
key is : yougotit_script_now

第二题:不能抓包了,需要用脚本,现在还不会,学学吧

    网上一位大哥的答案:

第三题:null

第四题:源码中有干扰脚本,因为脚本是先加载的,在页面上改掉不管用,刷新的话白改了

    所以把网页下载下来再改就好了

第五题:验证码一直用一个burp破解

第六题:验证码第一次答对后设置为空就好了,依然是burp

第七题:

    摘抄:验证码发布的流程
    1. 显示表单
    2. 显示验证码(调用生成验证码的程序),将验证码加密后放进 session 或者 cookie
    3. 用户提交表单
    4. 核对验证码无误、数据合法后写入数据库完成
    用户如果再发布一条,正常情况下,会再次访问表单页面,验证码图片被动更新, session 和 cookie 也就跟着变了
    但是灌水机操作不一定非要使用表单页面,它可以直接模拟 post 向服务端程序发送数据,这样验证码程序没有被调用,当然 session 和 cookie 存储的加密验证码就是上次的值,也就没有更新,这样以后无限次的通过post直接发送的数据,而不考虑验证码,验证码形同虚设!
    所以,在核对验证码后先将 session 和 cookie 的值清空,然后做数据合法性判断,然后入库!这样,一个漏洞就被补上了!
    仍然可以用上一题的方法,密码正确时响应为key is LJLJLfuckvcodesdf#@sd

第八题:PHP代码,不会,摘抄的

        

第九题:点获取验证码会看你现在的手机号是不是6,所以先改成6获取验证码,再改成7填上验证码提交

第十题:三位数,burp

第十一题:因为没有vcpython所以办不了,就是ocr识别