文章目录
1. view_source
- 题目
- 思路
按cltrl+s保存网页,再查看源码得到flag - 知识点
无 - 工具
无 - 心得
无
2. robots
- 题目
- 思路
根据题目提示得知robots协议,也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件。于是构造url得到php的名称,继续构造url得到flag - 知识点
robots协议 - 工具
无 - 心得
无
3. backup
- 题目
- 思路
备份文件常见后缀为.git .svn .swp .~ .bak .bash_history等,利用后缀名构造url,得到flag - 知识点
备份文件后缀 - 工具
无 - 心得
无
4. cookie
-
题目
-
思路
题目提示用burpsuite抓包获取cookie,看到提示语构造url,cookie.php提示查看response,得到flag -
知识点
Burp suite抓包 -
工具
Burp suite -
心得
抓包时要确保Burpsuite的拦截是开的,并设置好浏览器的代理(127.0.0.1:8080)
5. disabled_button
-
题目
-
思路
按ctrl和F12进入开发者模式,去掉Disabled,得到flag -
知识点
无 -
工具
无 -
心得
利用开发者模式改变页面部件状态
6. weak_auth
-
题目
-
思路
题目提示信息为弱口令,随便输入用户名和密码发现用户名要为admin,再结合题目输入弱密码123456获得flag -
知识点
无 -
工具
无 -
心得
了解常见弱口令模式
7. simple_php
-
题目
-
思路
从源码得知a和b是解题的关键,当a等于0且a有值,输出flag1;当b为一个数,退出;当b大于1234且由不是一个数,则输出flag2,所以构造:?a=0a&b=9999a -
知识点
GET型注入 -
工具
无 -
心得
透析源码,构造攻击语句
8. get_post
-
题目
-
思路
根据题目提示先用get方式提交变量a,再按F12进入hackbar以post方式提交变量b获得flag -
知识点
GET型和POST型提交的区别 -
工具
hackbar -
心得
无
9. xff_referer
-
题目
-
思路
根据题目提示,我们需要伪造ip。使用burpsuite对浏览器进行代理拦截,在重发器中的request里添加一行:X-Forwarded-For: 123.123.123.123,得到response。再添加一行Referer: https://www.google.com伪造请求,得到flag -
知识点
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。简单地说,xff是告诉服务器当前请求者的最终ip的http请求头字段通常可以直接通过修改http头中的X-Forwarded-For字段来仿造请求的最终ip -
工具
Burp suite -
心得
修改request的时候一定要把修改语句添加到请求头中,不能添加到下面空一行之后,不然得不到正确的response
10. webshell
-
题目
-
思路
题目提示为webshell,用中国蚁剑连接该webshell,密码为shell,连接成功后点击文件管理,得到flag -
知识点
webshell -
工具
中国蚁剑 -
心得
学会了工具的使用
11. command_execution
-
题目
-
思路
看到ping却没有写waf时,想到命令注入。使用命令连接符查找flag文件:127.0.0.1 & find / -name flag.txt,得到flag的地址;之后用cat命令:127.0.0.1 & cat /home/flag.txt显示文件内容得到flag -
知识点
命令执行注入漏洞(Command Injection), 是程序能够调用函数, 将字符串转化为可执行代码, 且没有考虑到攻击者可以利用字符串, 造成代码执行漏洞
command1 & command2 :不管command1执行成功与否,都会执行command2(将上一个命令的输出作为下一个命令的输入),也就是command1和command2都执行
command1 && command2 :先执行command1执行成功后才会执行command2,若command1执行失败,则不执行command2
command1 | command2 :只执行command2
command1 || command2 :command1执行失败,再执行command2(若command1执行成功,就不再执行command2)
- 工具
无 - 心得
学会了如何利用命令注入实现攻击
12. simple_js
-
题目
-
思路
查看网页源码,可以看出函数dechiffre()并没有密码匹配的环节,再结合题目说的一直输不对密码猜测该函数内部只是个幌子。将’\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30’用print函数转码,得到数组[55,56,54,79,115,69,114,116,107,49,50],再对数组进行ascii处理得到flag -
知识点
JavaScript
String.fromCharCode() :将 Unicode 编码转为一个字符 -
工具
无 -
心得
进行代码审计时要留意函数输入与输出的关联