CTF.show
1.web签到题
访问web签到题的地址,发现页面只有"where is flag"字样。
使用Fn+F12进入调试模式,或者页面空白处点击右键查看网页源代码,发现页面中有一段英文字符串被注释了,根据编码规则猜测使用的是base64的加密方式。
使用解码平台尝试解码,示例使用站长之家,成功获取到flag。(站长之家base64解码url:http://tool.chinaz.com/tools/base64.aspx)
2.web2
访问页面是一个登录窗口,首先想到尝试SQL注入。
使用万能密码查看是否能够绕过。
万能密码原理:
①猜测此处数据库语句可能是
select XXXX from XXXX where name=’ ’ and password=’ ‘;
②所以使用 “ ’ ”(单引号),使其能和name字段后的第一个单引号进行闭合,使用#将后面是所有字段注释掉。
③1’ or 1=1 # 语句使用户名字段执行结果都为真,并且(#)将密码字段注释(不校验密码),所以如果登录界面存在注入漏洞,就有可以使用万能密码进行绕过。
这里是引用
发现提示:欢迎你 ctfshow,说明存在ctfshow这个用户但是flag字段在哪还是未知的。
继续搞出flag字段,可以使用手工注入的方式或者sqlmap跑。
(1)使用sqlmap检测是否存在sql注入漏洞
使用burp抓取登录页面的POST数据包,保存为文件,在sqlmap中使用-r参数进行sql注入。
sqlmap语句:python2 sqlmap.py -r 文件名
存在注入漏洞
②使用 - -dbs 参数跑出数据库名
③使用 - -tables跑数据库web2下的表名
④获取到flag表里的字段,发现flag的字段。
⑤获取flag字段中的值,直接获取到答案。
3.web3
访问页面直接展示出php代码:<?php include($_GET['url']);?>,因为包含include,所以想到文件包含漏洞。
常见的文件解析漏洞通过…/…/…/…/./etc/passwd能查看到用户和密码信息,在url后添加 ?url=…/…/…/…/…/…/…/etc/passwd,直接显示出了用户名等信息。
尝试使用php://input函数执行系统命令查询到flag字段。
使用cat语句查看 ctf_go_go_go文件中的内容,直接获取到flag