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