bugku刷题体会
web
参考来源:https://www.jianshu.com/p/5fd1b624fd7a
基本操作:看源码,发送http请求,bp抓包,bp爆破,bp伪造cookie,目前遇到的就是这些。重要的是读懂代码和题目意思。一般打开一道题基本都离不开看源码抓包改包,然后才就用各种web工具。所以f12和bp是打开的基本姿势。
(1)看源码
考点:所学知识的集合。
最简单的类型,直接查看网页源码得知很多信息,可以在直接修改网页东西(web2)新手基本只能自己做的就是这种题型。基本上都包含其他的知识点一起出题,能直接得到flag的极少。需要具备的能力是看懂各种加密后的代码。
例子:
web1:直接查看。
web2:查看后修改限制值。
web6:查看后Unicode解码。
web13:查看后发现下面断开的代码,合上后用url解码
(2)发送http请求
考点:get/post传参,php函数,php弱比较,文件包含漏洞等
是相对很难的题型,需要具备的能力是基本认识url,html,php,JavaScript,python等多种语言,读懂代码后才能做题。现在是刚接触,未了解到这些语言各种的应用,做起来很吃力很懵逼。而且有非常多的题目都是这种题型。
例子:
web3:get传参。读代码后知道,**?what=flag**
web4:post传参。使用hackbar直接传参。
web5:php弱比较。读代码后,由“if($num==1)”知道了这是php弱比较,逻辑矛盾即可。所以用%00截断, ?num=1%00 其实后面跟一个不是数字的也得。
web8:文件包含。读代码。发现var_dump(),file()函数,还有include,属于php包含。
由于不会直接看题解
request直接可以用get传参 ?hello=file(‘flag.php’) .
web9:刚刚来以为类似web8,所以我用web8的方法直接传参失败了,其实也是新的东西。查看题解。
思路就是,把单个变量变成全局变量调用就看见了。
web14:看源码抓包啥也没有,直接看题解说用到php://filter读取文件后直接构造payload。**?file=php://filter/read=convert.base64-encode/resource=index.php**
(3)用工具
web7:抓包,不断发送请求,就能看到了。
web10:抓包,发送后直接查看响应头有flag(真·头等舱)
web11:抓包没东西,直接看题解说用御剑后台扫描,扫出一个shell.php
直接打开发现是需要密码,用bp抓包爆破。密码是hack(不晓得为什么我爆不出来,今后再尝试)
web12:看源码找到一串bas64,解码得test123觉得就是密码,根据题目猜用户名是admin,但是这一步完了登不上去,ip禁止访问。然后看题解得知要用bp伪造ip !
XFF(X-Forwarded-For)改一下,一弄就看见flag了。