CTF练习平台——web(4)

1、成绩单

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

检测字段数:



字段数为4

然后找到当前使用的数据库:


找表:

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


将skctf_flag转换为16进制0x736b6374665f666c6167


找列:


最后查询到内容:


BUGKU{Sql_INJECT0N_4813drd8hz4}

2、web6

抓包


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


KEY{111dd62fcd377076be18a}

3、cookies欺骗??

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


获得的index.php源代码


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


KEY{key_keys}

4、xss


查看源代码:


在网上查一下document.getElementById('s').innerHTML = s的意思:设置或获取某一Id的节点里面所包含的HTML代码

需要的是可以从注入点id进入的方法,采用img标签法,构造:

  http://103.238.227.13:10089/?id=

但是存在回显,说明存在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



Flag:17f094325e90085b30a5ddefce34acd8

另一种操作(跟大佬学的):

题目已经提示了插入一段XSS代码,首先查看源代码,发现只有给s和id变量赋值

先给id赋值:

id=

发现:

<>被过滤掉了

所以将<>进行unicode编码

构造payload:

view-source:http://103.238.227.13:10089/?id=\u003cscript\u003ealert(_key_)\u003c/script\u003e


Flag:17f094325e90085b30a5ddefce34acd8

你可能感兴趣的:(CTF练习平台——web(4))