bugku web总结_1
## bugku web总结(1-12)
因为报名了今年的iscc,之前没怎么打过ctf,所以在四月份做了一部分题目,练习一下,这篇文章做一下总结
web1:
ctrl+u,查看页面源码,直接能看到flag,没啥好说的
web2:
让你做三位的算数题,但是答案只让你填一位,好在是前端验证,我们可以直接改,f12打开控制台,源码里有个maxlength变量,初始值设了个1,我们改成3,就可以正常输入了,输入正确答案,flag就有了
web3:
打开之后,给了一串源码
1 |
|
让我们GET传一个what参数,内容是flag的话,就告诉我们flag
web4:
与web3几乎完全相同,只是改成了post传参,打开hackbar,给一个post参数what=flag,拿到flag
web5:
同样是给了一串源码
1 |
|
乍一看两次判断相悖,第一次要求num不是数字或数字字符串,第二次要求num=1,但细看的话,实际上两次判断并不相悖,第一次判断,我们传递的只要不是纯数字,就可以通过,第二次判断,$num==1,php是弱类型语言,数字和字符(串)的比较是存在类型转换的,对字符串来说是以开头的数字为准,所以在松散比较中,1”qid#@# ==1 是正确的,此处如果= =换成= = =,大概就不行了
下面是两个有关强弱类型和php语言的网站
https://www.zhihu.com/question/19918532
https://www.php.net/manual/zh/types.comparisons.php
web6:
一直弹窗,flag就在这里,当然知道flag在这里,不然我花金币进来干嘛,用火狐的话,会有个选项直接不让他弹窗,我们也可以用burp把这个页面拦下来,repeater给它重发一下,burp内嵌的页面显示可不会弹窗,直接查看响应报文,给了一行注释,内容是
1 |
|
用burp给它html解码,得到flag
web7:
你必须让它停下,定期刷新,大概一秒刷一次,题目告诉我们在熊猫图片停下,结果图还刷不出来,burp抓包,送到repeater,反复的发送,然后看响应报文,刷到某张图片的时候就能看到flag
web8:
题目叫文件包含,点进去给了一串源码
1 |
|
题目已经告诉了我们需要包含flag.php,另外已经知道参数为hello,另外还有eval函数可以将括号内的内容当做代码执行,所以此时我们直接构造payload为?hello=show_source(‘flag.php’),读取flag.php中的内容,此处不一定要利用show_source函数,其他读取函数例如print_r也可以
web9:
点进去之后同样是给了一串代码,还提示我们flag在变量中
1 |
|
很显然,这里跟web8最大的不同是,由于preg_match匹配全字母及数字0-9,我们很显然没法直接用web8那样的方法包含文件名flag1.php,而且我们也用不了像show_source(),因为里面包含符号,但开头提示了我们flag在变量中,可能他定义了某些变量中含有flag1.php,我们此时需要利用到超全局变量$GLOBALS,他会引用全局作用域中可用的全部变量,所以我们只需要构造payload为/?args=GLOBALS即可获取flag。
web10:
头等舱,点开之后,什么也没有
f12打开控制台,看下head,或者burp抓包扔给repeater,再发一下,看响应,就能看到flag了。
web11:
点开以后是个黑页
使用dirsearch扫过之后,会拿到一个/shell.php页面,让输密码
打开burp,抓包丢给intruder模块,选用burp自带的密码集,爆破即可
web12:
点开之后,给了一个登录框
f12打开控制台,查看源码
注释的内容是一段base64加密文本dGVzdDEyMw==,解密后得到test123,估计是密码
burp丢给intruder,爆破用户名,会提示ip禁止访问
可以xff修改ip访问,在报文中加入X-Forwarded-For: 127.0.0.1,再次爆破可以得到用户名为admin,输入用户名密码,得到flag
web13:
点开之后,给了一个输入框,还提示看看源代码,右键查看源码
1 |
|
经过url解码,得到如下代码
1 |
|
很显然,要两个if全部通过,才能拿到flag,我们把67d709b2b54aa2aa648cf6e87a7114f1复制到输入框,成功拿到flag
作者:C0mpactDisk,本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!