寒假做题(buuctf)

[ACTF2020 新生赛]Include

1,打开时,页面显示tips
2,点击tips时查看在这里插入图片描述得不到flag
file=flag.php,可以试着想,flag是否在flag.php中,进行查看
3,可以了解到,这是php伪协议
file:// 协议
在下边这个链接可以了解到php伪协议
https://segmentfault.com/a/1190000018991087
简称来说,就是用来访问本地文件系统,在ctf中用来读取本地文件且不受allow_url_fopen与allow_url_include的影响
4,下一步得到
PD9waHAKZWNobyAiQ2FuIHlvdSBmaW5kIG91dCB0aGUgZmxhZz8iOwovL2ZsYWd7OTI4Zjc5N2UtOTY4MC00OTI4LTkxMTEtNTllZGUxNmU4NGJmfQo=
需要进行base64解码 就会得到flag。了解到用php伪协议来读取flag.php
5,使用base64解码
flag{a9e354a5-d208-4a6c-8a36-55e0596c341e}
在这里插入图片描述https://base64.supfree.net/

[强网杯 2019]随便注

1,看到这题,想到的就是sql注入,按正常sql注入的方法去写,结果显示

在这里插入图片描述
发现select ,update,delete,…被过滤了
2,所以采用堆叠注入
1’;show databases;(查询数据库名)
在这里插入图片描述
3,查询表名
在这里插入图片描述
4,查看表的结构
0’;desc '1919810931114514;#
在这里插入图片描述
在windows系统下,反单引号(`)是数据库、表、索引、列和别名用的引用符

eg. mysql> SELECT * FROM table WHERE id = ‘123’ ;

1919810931114514必须用反单引号括起来,但是words不需要,应该是和数据类型有关
在这里插入图片描述那么查询语句很有可能是 : selsect id,data from words where id =

因为可以堆叠查询,这时候就想到了一个改名的方法,把words随便改成words1,然后把1919810931114514改成words,再把列名flag改成id,结合上面的1’ or 1=1#爆出表所有内容就可以查flag啦

payload:

0’;rename table words to words1;rename table 1919810931114514 to words;alter table words change flag id varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;desc words;#

在这里插入图片描述

  1. 再用一下一开始的操作id=1’ or 1=1#

在这里插入图片描述

BUUCTF-WEB-[极客大挑战 2019]EasySQL 1
  1. 打开网址是一个简单的登陆界面

  2. V

  3. 简单的打量一番,这里使用万能密码即可进行注入即可得到flag

  4. 在这里插入图片描述

  5. 简单的了解万能密码
    原理:SQL语句sql=“select * from user where username=’”&username&"‘and password=’"& password&’",当我们的密码填写’or’1’=‘1提交的时候,此时语句中的password等于’or’1’=‘1,那么,这条SQL语句就变成了:sql="select * from user where username=’"&username&"'and password= '‘or’1’=‘1’,然而,1=1是恒等条件,自然也就通过了程序的验证。
    方法:首先我们需要在密码的最前面有一个单引号,来闭合SQL语句中的单引号,然后构造一个or,也就是或者,后面加一个恒等条件即可最简单的就是1=1,同样为了使SQL语句不出错,是来闭合程序中的SQL语句的后面的单引号的,如果我们在后面再加上一个单引号的话就会出错。

HCTF2018(代码审计)

分析过程
打开之后看见源代码有source.php,直接看source.php
在这里插入图片描述

看了一会代码是发现有file等,就想到了文件上传,然后看代码。
首先是有一个checkfile函数
在这里插入图片描述

先定义了白名单,只有source.php和hint.php。之后是一个判断是否是空和字符串的if,不是就返回false,还有一个判断,是否在白名单里的if。再往下看,
mb_substr(str1,start,[length][,[str2]]):是在str1从start开始length为长度截取字符串,str2是表示字符编码
mb_strpos(str1,str2):查找str2在str1中出现的位置

所以可以看出_page=page,之后再判断一下 _page是否在白名单中
这一步是url解码,将page解码,此时_page就是解码过的page,接下来和上面是一样的,但不同的是对 _page操作,之后又是白名单判断,是就true,不是就false。

最后就是文件上传基本操作
同时还有hint.php
解题
所以需要考虑的就是如何绕过

首先是有3个true是可以返回的,但只有最后两个是可以的。

此时可以构造第一个payload在第一个地方返回

file=hint.php?/…/…/…/…/…/…/…/…/ffffllllaaaagggg
1
第二个payload,这里第二个是进行二次解码的,第一次是发去服务器,服务器解析一次,第二次是urldecode。所以可以逆推回两次前的是%25

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值