1、成绩单
看见成绩查询就想到了sql注入,输入1‘无成绩显示,存在注入点

检测字段数:


字段数为4
然后找到当前使用的数据库:

找表:
第一次直接将skctf_flag放上去,没有回显

将skctf_flag转换为16进制0x736b6374665f666c6167

找列:

最后查询到内容:

2、web6

抓包

flag base64解码后还是base64的字符,再解码得到一串数字:752690,所以要把这个数字post上去,所以写python脚本

3、cookies欺骗??

根据url可以看到网页是一个读取文件,filename经过base64编码,解码后发现是"flag.txt",猜测有文件包含漏洞,尝试更改file的值为“index.php”的base64编码,网页一片空白,更改line的值发现,line指的行,写个程序拿到index.php的源码


获得的index.php源代码

根据代码内容,就是在cookie中加上margin,把keys.php加入文件列表,然后申请读取keys.php的内容

4、xss

查看源代码:

在网上查一下document.getElementById('s').innerHTML = s的意思:设置或获取某一Id的节点里面所包含的HTML代码
需要的是可以从注入点id进入的方法,采用img标签法,构造:
http://103.238.227.13:10089/?id=<img src=1 onload=alter(key_)/>

但是存在回显,说明存在xss filter,传参字符串中存在被屏蔽的词
一般可能的是alter,但是题目要求存在alter,顾考虑第二个可能点<>
尝试使用转义符号:

发现对<>不起作用
所以阻挡点就是<>
因为页面编码是utf-8,id传入代码会在s中运行,考虑将<>进行unicode编码,这样当代码被替换进去运行时,utf-8又会将其变回来
\u003c代表<
\u003e代表>
构造payload:
http://103.238.227.13:10089/?id=\u003cimg%20src=1%20onload=alert(_key_)/\u003e


另一种操作(跟大佬学的):
题目已经提示了插入一段XSS代码,首先查看源代码,发现只有给s和id变量赋值
先给id赋值:
id=<script>alter(123)</script>
发现:

所以将<>进行unicode编码
构造payload:
view-source:http://103.238.227.13:10089/?id=\u003cscript\u003ealert(_key_)\u003c/script\u003e
