CTF论剑厂Web(1)

1.web26

 

 

 

 

 

 这道题很简单,绕过第一个if,进入第二个if即可

第一个if是判断str是否是数字,让它不为数字即可

第二个if上面的语句,=的级别高于and,所以只要num为数字而str不为数字即可

http://123.206.31.85:10026/?num=4&str=abc

上面是一直简单的情况‘

2.web1

打开之后如下:

 

 

 

 

 

 extract — 从数组中将变量导入到当前的符号表,trim — 去除字符串首尾处的空白字符(或者其他字符)。

file_get_contents() 函数把整个文件读入一个字符串中。

将a,b均设置为空即可,由于b影响c,c也为空

http://123.206.31.85:10001/?a=&b=

 

 

 3.web2

 

 

 

 

 

手速不够快,使用程序解决

import re
import requests

url = 'http://123.206.31.85:10002/'
r = requests.session()
text = r.get(url).text
#print(text)

calc = str(re.findall("(.*?)</p>", text))[2:-2]

ans = eval(calc)
data = {'result':ans}
res = r.post(url, data)
print(res.text)

程序参考https://www.jianshu.com/p/9e4df5131e5f

6.web6

 

 

 F12

 

 

 最下面的使用base64解码之后就可以得到密码test123

用户名使用admin

但是并不能成功提交,需要修改IP

5.web11

 

打开之后:

 

 

 

是robots限制了浏览

查看 http://123.206.31.85:3030/robots.txt 

 

 

 查看shell.php  http://123.206.31.85:3030/shell.php 

结果:

 

 

PHP之中substr的用法:

 

 

所以只要MD5(xxxx)的前6个字符为184cb4即可

MD5是一种加密算法,且不存在可逆算法,那怎么办呢?

暴力!

# -*- coding: utf-8 -*-  
import hashlib

def md5(s):
    return hashlib.md5(s.encode("utf-8")).hexdigest()

for i in range(1,9999999):
    if(md5(str(i)).startswith('4e110d')):
        print(i)
        break

#print(md5("121"))

解出:

42465

填入即可显示flag

posted @ 2020-09-20 19:58  caishunzhe  阅读(145)  评论(0编辑  收藏  举报