ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL注入之简单手工注入

2022-06-23 00:05:13  阅读:150  来源: 互联网

标签:group 手工 -- 爆出 SQL id 输入 注入


SQL注入原理:

  SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。(源自百度百科)

 

按数据提交类型可分为:

 

SQL注入的防御:

 

一般步骤:

 

简单的POST注入:

题目来源:Bugku CTF

使用工具:Firefox浏览器,Hackbar插件

步骤:

1.打开网站,发现输入数字可以显示学生成绩

 2.使用Hackbar查看post data

3.输入 ' 发现正常显示id=1时的页面,故闭合字符为 '

 4.输入 and 1=2 和 and 1=1 -- -查看显示页面(--为注释符,代表将后面的语句全部注释,后边要加空格,故写作-- -)

 5.使用order by语句判断列数,从order by 1开始判断,发现当输入order by 1,2,3,4,5时无法正常显示成绩,故可判断列数为4

 6.判断显示位,利用联合查询输入id=4' and 1=1 union select 1,2,3,4-- -,并使用version()函数爆出数据库版本(注意:前方的id要改为不能查询到成绩的id,这样后面才能显示出需要的信息)

 7.使用database()函数爆出数据库名

8.使用group_concat()函数爆出表名(group_concat()函数作用见文末)

 9.先爆出所有的列名

 10.爆出fl4g表中的列名

 11.爆出skctf_flag的字段名,得到flag

 

Tips:

--01.在MySQL5.0以上版本都存在information_schema数据库,相关结构如下

--02.group_concat()函数的作用是将group by产生的同一个分组中的值连接起来,返回一个字符串结果。

标签:group,手工,--,爆出,SQL,id,输入,注入
来源: https://www.cnblogs.com/AjieBlog/p/16403660.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有