博主开始学习CTF并做记录,本人是一名初级渗透测试工程师,水平初级很一般。

阅读书籍为异步图书的《CTF快速上手 PicoCTF真题解析》Web篇 ,李华峰著书

这是第一本

简单解析一下真题:Web Gauntlet(关卡)

该题说明页面如图

题干意思:你能击败过滤器吗?以admin身份登录。

直接Round 1/5

主页有两个地址,分别打开如下图所示:

第二个网站意思告诉你第一关过滤了字符:or

尝试在第一个网站关卡输入用户名(admin)和密码(123456)

返回:直接报错,要想办法进行sql注入及绕过or的过滤机制

select * from users where username = 'admin' -- and password = '123456'; 

通过构造输入的内容将题中语句变更为输入用户名(admin' -- )和密码(123456),最终提交成功。Congrats! 来到第二关:

直接Round 2/5

我直接上答案,截图与上面相似。

过滤了or and like = -- :

select * from users where username = 'admin';'and password = '123456'

输入用户名(admin’;)与密码(123456),登陆成功,来到第三关。

直接Round 3/5

过滤了 or and = like >< -- :

还是可以用;

输入用户名(admin’;)与密码(123456),登陆成功,来到第四关。

直接Round 4/5

这一关把admin都过滤了

想到用字符串连接运算符|| 来拼接admin的部分元素

||运算符的语法格式如下:

string1 || string2

并且在sql中。多行注释以/*开始,并以/*结尾。虽然这是一种多行注释,但在CTF比赛中可以只使用/*来屏蔽后面的代码。

输入用户名(adm'||'in'/*)与密码(123456),登陆成功,来到第五关。

直接Round 5/5

第五关答案如同第四关,通关

注:以后会介绍一系列CTF比赛赛题解析,欢迎关注我的专栏
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐