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包含。

image-20210125212546874

image-20210125212916480

image-20210125211944681

由于不会直接看题解

image-20210120010319644

request直接可以用get传参 ?hello=file(‘flag.php’) .

web9:刚刚来以为类似web8,所以我用web8的方法直接传参失败了,其实也是新的东西。查看题解。

image-20210125213400738

思路就是,把单个变量变成全局变量调用就看见了。

image-20210125213832278

web14:看源码抓包啥也没有,直接看题解说用到php://filter读取文件后直接构造payload。**?file=php://filter/read=convert.base64-encode/resource=index.php**

image-20210125215900875

image-20210125220019199

(3)用工具

web7:抓包,不断发送请求,就能看到了。

web10:抓包,发送后直接查看响应头有flag(真·头等舱)

web11:抓包没东西,直接看题解说用御剑后台扫描,扫出一个shell.php

直接打开发现是需要密码,用bp抓包爆破。密码是hack(不晓得为什么我爆不出来,今后再尝试)

web12:看源码找到一串bas64,解码得test123觉得就是密码,根据题目猜用户名是admin,但是这一步完了登不上去,ip禁止访问。然后看题解得知要用bp伪造ip !

XFF(X-Forwarded-For)改一下,一弄就看见flag了。

image-20210125215318443