BUUCTF-练习场-Web(5-8)

[ACTF2020 新生赛]Exec 1

  • 知识点

  1. 命令执行漏洞

| :  直接执行后面的语句

||:    如果前面执行的语句出错,才执行后面的语句

&:    &前面后面的命令都要执行,无论真假

&&:如果前面为假就直接出错,后面的不会被执行

  • 解题步骤

1.看到是ping,先输入ip地址试一下

2.因为是命令输入框,猜测可能存在命令执行漏洞,输入|cat /flag 试一下

3.然后直接ping,可以得出flag

[强网杯 2019]随便注 1

  • 知识点

  1. SQL注入
  2. 联合注入
  3. 堆叠注入
  4. 爆库爆表查字段

SQL注入步骤大概总结

1、判断注入点
2、判断字段(列)数
3、判断回显点(看情况)
4、查数据  数据库、表、列、列中的数据

  • 解题步骤

1.先用万能钥匙浅浅试一下水,得到下面的代码

 

 2.由此得出存在SQL注入,所以这个时候,可以先判断一下字段个数

判断列数,字段个数,用1' order by 数字# ,order by 作用是排序

 判断字段个数如图所示

 到第三列报错,说明只有两列

3.爆表,看看有什么

爆表:1';show tables;#

发现有两个表,一个是1919810931114514,一个是words 

4.分别进去两个表,获取表中列名,得到如图所示

1';show columns from words;#

1';show columns from `1919810931114514`;#

 

这个时候在一串数字的表中,发现了flag,下面考虑如何回显

5.更改表名列名类型

因为查询是在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 译为 改变

然后输入此命令后,再查一下表,以及表中的列

6.万能语句直接回显flag

疑惑?为什么需要更改表名列名以及属性,才可以用万能语句获得flag

[SUCTF 2019]EasySQL 1

  • 知识点

  1. 后端代码猜测
  2. ||的理解
  3.  select from的理解
  4. mysql中sql_mode参数设置
  5. *的理解
  • 解题步骤

1.先万能语句,发现不可以

2.试一下堆叠注入,爆库,爆表

由这里Array([0] => 1)和Array([0] >= Flag)可以猜测出1和flag必然有什么联系

这里有的大神会猜测出后端代码

select $_GET[‘query’] || flag from flag

||,理解:如果前面的代码为真,则后面的代码不执行

3.第一种解法

*,1

如果$post[‘query’]的数据为*,1,

sql语句就变成了select *,1||flag from Flag,也就是select *,1 from Flag,就直接查询出了Flag表中的所有内容。

“select * from”中“*”意思是:指查询表或视图中的所有字段。

select 1 from 的意思其实是建立一个临时列,这个列的所有初始值都被设为1。

得到flag。

4.第二种解法

  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

  • 知识点

  1. 绕过空格方法
  2. 参数替代方法
  3. cat与tac函数
  • 解题步骤

1.看到题目是ping,并且打开界面有个ip的参数,先在url这里传一下ip地址

2.查一下当前目录里面的文件

哇哦~,发现了flag.php文件,尝试用cat打开一下

3.利用cat打开flag.php文件

发现并不可以,提示空格被过滤掉了

4.利用其他字符绕过空格

绕过空格的方法

$IFS
${IFS}
$IFS$1 //1改成加其他数字好像都是可以的
<
<>
注:这道题好像;   , 都可以绕过空格,不清楚是不是通用

发现虽然绕过了空格,但是flag竟然也被过滤了,要想办法进行字符替换

5. 这里采用参数替代

?ip=127.0.0.1;b=g;cat$IFS$8fla$b.php

 注意在使用参数的时候,加一个$

这里同时绕过空格和flag的时候,需要用$IFS$1这种绕过方式(不是很理解,看其他wp有的其他绕过方式也是可以的),然后右键查看源代码

6.利用tac(cat函数的反写),可以不用看源代码,直接显示

cat命令读取文件的内容并将内容连续输出到标准输出,用于查看文件的内容。

cat是单词concatenate的简写。
如果没有加任何参数,cat读取标准输入并输出到标准输出。
tac命令和cat命令的功能一样,

区别是cat将文件从第一行到最后一行连续显示到屏幕上,

而tac则正好相反,从最后一行到第一行反向输出到屏幕上。
tac是cat的反写形式。

7.深究一下源代码,发现里面绕过了好多

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值