前言
国庆这几天感觉没什么好玩的地方,家又离的太远,弱鸡的我便决定刷刷题涨涨知识,于是就有了这篇文章。。
正文
写的不对的地方欢迎指正
web26
打开直接就是代码,这应该就是一道代码审计的题了
这里主要需要绕过第一个正则匹配,同时要令$result为真就能得到flag了
构造?str=a&num=1
web1
只需第一个两个if都为true即可得flag
isset() 函数用于检测变量是否已设置并且非 NULL。
注意:如果$a=‘‘,还是会返回ture
当它读取不存在的文件时会报错,返回空值,但是程序会继续往下执行(直接读取字符串也返回空值)
于是构造?a=
web2
每次访问式子都不一样,这里要用到脚本了
import re import requests url = ‘http://123.206.31.85:10002/‘ r = requests.session() text = r.get(url).text calc = str(re.findall("(.*?)</p>", text))[2:-2] ans = eval(calc) data = {‘result‘:ans} res = r.post(url, data) print(res.text)
看到本地,于是伪造本地登陆
在访问
查看源码
解码test123
再登录就可以看到flag
xff简单介绍
以为是文件上传之类的
估计用了白名单
说是尺寸不符
于是在传一个正常可以加载的png图片马,成功
点击可以view看到绝对路径
http://123.206.31.85:10003/uploads/5c1516df1ae918f9b79657437cafa780b746d843.png
尝试包含http://123.206.31.85:10003/?op=uploads/5c1516df1ae918f9b79657437cafa780b746d843.png
却反回没有这个界面
然后就有点懵。。。
import hashlib def md5(key): m = hashlib.md5() m.update(key.encode(‘utf-8‘)) return m.hexdigest() for i in range(1000000000):#i等于从零开始 if md5(str(i))[0:6] == ‘66f021‘:#把i转化为字符串,对字符串里面的内容加密在截取0到6位比较 print(i) break
原文:https://www.cnblogs.com/lceFIre/p/11628512.html