BUU刷题 Web(持续更新)

2 篇文章 0 订阅

知识点

一、SQL注入

1.万能句型

(1)1’or’1’='1

密码处注入万能句型

在没有进行SQL注入之前的登陆语句为

Select * From 用户表 Where UserName=xxx and Password=xxx

只有用户输入正确的用户名和密码后才能正常登录,
而在进行SQL注入1’or’1’='1之后的登录句型为

Select * From 用户表 Where UserName=xxx and Password=xxx1'or'1'='1

大概意思就是在1=1的时候就可以登陆,而1=1永远成立,所以只要密码是1‘or’1’='1,不管用户名输入什么,都可以正常登录

(2)’ or 1=1#

用户名处注入万能句型
在SQL注入之前登陆语句如下,只要输入正确的用户名和密码就可以顺利登陆

Select * From 用户表 Where UserName=xxx and Password=xxx

SQL注入万能句型后

Select * From 用户表 Where UserName=' 'or1=1#' and Password=xxx

#相当于注释掉了后面的 and Password=xxx ,而where相当于判断语句,并且UserName=’ ‘和1=1之间是使用or进行的连接,所以只要UserName=’ '和1=1之间有一个成立就都成立,而1=1恒成立,所以整个语句等价于

 Select * From 用户表

所以当在用户名栏里注入’ or 1=1#,不管密码输入什么都可以成功登录

2.通用语法

SQL通用语法

二、PHP封装协议

php://filter
是php中独有的一个协议,可以作为一个中间流来处理其他流,可以进行任意文件的读取;根据名字filter,可以很容易想到这个协议可以用来过滤一些东西;
使用不同的参数可以达到不同的目的和效果:

resource=<要过滤的数据流>指定了要筛选过滤的数据流。 必选
read=<读链的筛选列表>可以设定一个或多个过滤器名称,以管道符(|)分隔。 可选
write=<写链的筛选列表>可以设定一个或多个过滤器名称,以管道符(|)分隔。 可选
<;两个链的筛选列表>任何没有以 read=或write=作前缀 的筛选器列表会视情况应用于读或写链。

主要有一下两个应用:
1、利用base64获得源码
2、通过读写编码实行绕过操作

(1)利用base64获得源码
通常会构造payload:‘php://filter/read=convert.base64-encode/resource=xxx.php’

php://filter与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,阻止其不执行。从而导致任意文件读取。

read=convert.base64-encode,用base64编码输出,不然会直接当做php代码执行,看不到源代码内容。
php://filter协议,用base64编码的方式来读文件flag.php;这时页面会显示出源文件flag.php经过base64编码后的内容,然后经过base64解码就可以看到flag
部分内容来自 PHP伪协议(封装协议/内置协议)

(2)通过读写编码实行绕过操作
详解php://filter以及死亡绕过

三、文件包含

常见的文件包含函数
1、include()
当使用该函数包含文件时,只有代码执行到include()函数时才将文件包含进来,发生错误时之给出一个警告,然后继续向下执行。
2、include_once() 功能和include()相同,区别在于当重复调用同一文件时,程序只调用一次
3、require()
Require()与include()的区别在于require()执行如果发生错误,函数会输出错误信息,并终止脚本的运行。
4、require_once()
require_once()功能与require()相同,区别在于当重复调用同一文件时,程序只调用一次。
5、highlight_file()、show_source()
highlight_file()、show_source()函数对文件进行语法高亮显示,通常能看到源代码
6、readfile()、file_get_contents()
readfile()、file_get_contents()函数读取一个文件,并写入到输出缓冲
7、fopen()
打开一个文件或者url

【web安全】——文件包含漏洞

四、Linux命令

1.常见命令和符号

ls(英文全拼:list files):用于显示指定工作目录下的内容(列出目前工作目录所含之文件及子目录),在命令行中输入“ls /”并回车,可指定查看根目录下的所有文件及目录 。
ls的命令选项还有很多,可以参考Linux常用命令大全

cat(英文全拼:concatenate):查看文件内容,用于连接文件并打印到标准输出设备上。
cd(英文全拼:change directory):切换目录
pwd(英文全拼:print work directory):显示目前的目录
mkdir(英文全拼:make directory):创建一个新的目录
rmdir(英文全拼:remove directory):删除一个空的目录
cp(英文全拼:copy file): 复制文件或目录
rm(英文全拼:remove): 删除文件或目录
mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称

拼接符
& :前面和后面命令都要执行,无论前面真假
&&: 表示前一条命令执行成功时,才执行后一条命令
| :直接执行后面的语句
|| :表示上一条命令执行失败后,才执行下一条命令
; :表示命令依次执行

2.被过滤的解决方法
(1)命令中空格被过滤的解决方法

命令中空格被过滤的解决方法:
linux:
{cat,flag.txt}
cat${IFS}flag.txt
cat$IFS$9flag.txt: $IFS$9 $9指传过来的第9个参数
cat<flag.txt
cat<>flag.txt
kg=$'\x20flag.txt'&&cat$kg
(\x20转换成字符串就是空格,这里通过变量的方式巧妙绕过)
windows:
(实用性不是很广,也就type这个命令可以用)
type.\flag.txt
type,flag.txt
echo,123456
在CTF比赛中,命令中空格被过滤的解决方法

(2)命令中cat被过滤的绕过方法

(1)more:一页一页的显示档案内容
(2)less:与 more 类似,但是比 more 更好的是,他可以[pg dn][pg up]翻页
(3)head:查看头几行
(4)tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示
(5)tail:查看尾几行
(6)nl:显示的时候,顺便输出行号
(7)od:以二进制的方式读取档案内容
(8)vi:一种编辑器,这个也可以查看
(9)vim:一种编辑器,这个也可以查看
(10)sort:可以查看
(11)uniq:可以查看
(12)file -f:报错出具体内容

题目

WEB

2023.4.09-2023.4.16

-[极客大挑战 2019]EasySQL

在这里插入图片描述进去之后完全没有头绪,在CSDN上搜了一下
在这里插入图片描述使用万能密码后即可得到flag
yuhsi 但是我对万能密码一窍不通… … …
在CSDN上找了好多文章了解万能密码
在这里插入图片描述
使用万能密码后成功登录得到flag在这里插入图片描述

-[极客大挑战 2019]Havefuns

放眼望去给的界面里什么信息都没有
在这里插入图片描述
打开网页的源代码后发现在源代码的最后有一个cat变量,需要使用到get传参,从里面可看出来如果cat=dog就输出flag
在这里插入图片描述在进行get传参后,得到本题的flag
在这里插入图片描述

-[HCTF 2018]WarmUp

进入靶机后发现界面上没有任何信息
在这里插入图片描述
然后查看网页源代码,发现有一个source.php文件
在这里插入图片描述在原来的网址后面进行下图的操作,发现新的网址页面里面有一个hint.php文件
在这里插入图片描述然后查看一下这个文件,发现提示flag在ffffllllaaaagggg里(到这里我就不太清楚该怎么查看这个ffffllllaaaagggg文件,于是在CSDN上查了一下)
在这里插入图片描述在网址后面添加上 ?file=hint.php?/../../../../ffffllllaaaagggg即可访问最后的页面获得flag
在这里插入图片描述

-[ACTF2020 新生赛]Include

进入网页后发现出现了flag.php文件,?file=flag.php猜测文件包含漏洞
在这里插入图片描述采用PHP封装协议,尝试利用base64获得源码,在原网址后构造payloadfile=php://filter/read=convert.base64-encode/resource=flag.php得到base64
在这里插入图片描述进行base64解密得到本题的flag
在这里插入图片描述

-[ACTF2020 新生赛]Exec

在这里插入图片描述

百度了一下网址中的PING,发现是Linux ping 命令
输入127.0.0.1|ls查看此文件目录
在这里插入图片描述发现只有一个index.php,于是输入127.0.0.1|ls /查看上级目录
在这里插入图片描述输入127.0.0.1|cat /flag查看flag

-[GXYCTF2019]Ping Ping Ping

靶场里面给的提示是/?ip=
在这里插入图片描述在网址后面写上/?ip=127.0.0.1
在这里插入图片描述在后面输入,/?ip=127.0.0.1|ls查看目录
在这里插入图片描述发现目录中有flag.php,输入/?ip=127.0.0.1|cat flag.php查看flag
在这里插入图片描述
但是发现输入/?ip=127.0.0.1|cat flag.php后没有显示出flag,而给出的提示是fxck your space,fxck不知道是啥意思,但是space是空格的意思
在这里插入图片描述发现空格被过滤了后,先用第一种方法/?ip=127.0.0.1|{cat,flag.txt}
在这里插入图片描述发现是符号{}被过滤了,所以方法一和方法二都包含{},所以都不能用,
试一下方法三/?ip=127.0.0.1|cat$IFS$9flag.php
在这里插入图片描述发现flag被过滤了,在查看目录时,有两个文件,尝试打开第二个文件
得到如下页面
在这里插入图片描述查看源代码
在这里插入图片描述通过代码审计发现好多东西都被过滤了,源代码里有一个变量a
大佬说 变量拼接字符串——将a的值覆盖,然后进行绕过
构造payload:/?ip=127.0.0.1;a=g;cat$IFS$9fla$a.php
在这里插入图片描述查看源代码,发现flag
在这里插入图片描述

·······················································

2023.4.17-2023.4.21

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值