写在前面:22年寒假开始接触ctf,目前在是一个在大佬成群的实验班里艰难生存的菜鸡…,欢迎大佬们来指点!(¯︶¯)
刷题网站:攻防世界
ctf-web题目笔记
1、一道关于php的题目
场景:http://111.200.241.244:64040
这道题用到了php弱类型比较的知识点
观察php代码,发现发现同时满足 $a==0 和 $a 时,显示flag1,php中的弱类型比较’abc’ ==0为真,所以输入a=abc时,可得到flag1,s_numeric() 函数会判断如果是数字和数字字符串则返回 TRUE,否则返回 FALSE,B 可以构造为 12345a,类型转换后为 12345,大于 1234
输入/index.php/a=abc&b=1235a
2、一个暴力技巧:
直接在网站后面加/flag.txt直接输出flag…不具有什么普遍性,那道题目常规做法是用webshell菜刀,回头有时间把正确解法补上。
3、有关备份
常见的备份文件后缀名有: .git .svn .swp .svn .~ .bak .bash_history
可以通过在index.php后加后缀逐一尝试,最后发现加.bak直接套出结果
下载后发现.bak打不开,直接把后缀改成txt即可得到flag:
4、有关账户名密码
题目:小宁写了一个登陆验证页面,随手就设了一个密码。
常见的管理员账号:admin,root。
常见的弱密码:123456、12345678、admin、root、toor 等。
接下来,就是挨个尝试了。
账号输入 admin,密码输入 123456,登录成功,页面跳转就得到了flag
正常方法:burp抓包(后续补)
5、GET请求与POST请求
进入环境后可看到
get请求可以直接加后缀进行输入:/?a=1
之后可以看到要求用post请求输入b=2,post请求不可以直接修改网址
选择使用curl命令?(curl命令模拟json格式的post请求)
curl -X POST -d 请求内容 +http
输入后即可得flag
6、输入index.php抓包,而index.phps可以捕获源代码
需要用get方式发出admin,但是因为有urldecode的存在,所以要对admin进行两次url编码得到flag