sql注入

设计模式--静态代理

ⅰ亾dé卋堺 提交于 2020-03-07 10:25:42
package designpattern.staticagent; import java.sql.*; import java.util.Map; import java.util.Properties; import java.util.concurrent.Executor; /** * 静态代理 */ public class MyConnecntion implements Connection { //注入mysql 或者oracle的connecntion的实现 private Connection connection; private boolean close=false; public void setClose(boolean close) { this.close = close; } @Override public Statement createStatement() throws SQLException { return connection.createStatement(); } @Override public PreparedStatement prepareStatement(String sql) throws SQLException { return connection.prepareStatement(sql); }

mysql中#和$得区别

帅比萌擦擦* 提交于 2020-03-07 06:48:59
1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".    2. $将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是111,那么解析成sql时的值为order by user_id, 如果传入的值是id,则解析成的sql为order by id.    3. #方式能够很大程度防止sql注入。    4.$方式无法防止Sql注入。 5.$方式一般用于传入数据库对象,例如传入表名.    6.一般能用#的就别用$. MyBatis排序时使用order by 动态参数时需要注意,用$而不是# 来源: CSDN 作者: Sunjin_shuai 链接: https://blog.csdn.net/Sunjin_shuai/article/details/104694486

Web安全--Sql注入基础

风格不统一 提交于 2020-03-07 03:08:38
以下为视频笔记记录: SQL注入点的判断: 如果+1,-1页面有变化,就考虑联合查询,如果页面没有变化就考虑布尔类型,此时看是否有报错,如果有报错就是报错注入,如果没有报错也没有回显的话就看是否有布尔类型的状态,如果有布尔类型状态就考虑布尔盲注,如果以上都没有则看是否有延时注入 ?id = 35 + 1 / - 1 select * from tbName where id = 35 ?id = 35 ' 判断字符型还是数字型 select * from tbName where id=35' ?id = 35 and 1 = 1 是否有布尔类型的状态 ?id = 35 and 1 = 2 select * from tbName where id = 35 and 1 = 1 select * from tbName where id = 35 and 1 = 2 ?id = 35 and sleep ( 5 ) 是否有延时 四大基本手法: 联合查询 报错注入 布尔盲注 延时注入 demo注入点: http://localhost/show.php?id=33 注入点的判断: 对连接http://localhost/show.php?id=33是否是注入点进行判断 (1)变换id参数 当我们变换id 参数(33+1|33-1)的时候,发现同一个页面,show

SQL注入

自古美人都是妖i 提交于 2020-03-06 08:47:09
SQL注入 SQL 注入即是指 web 应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在 web 应用程序中事先定义好的查询语句添加额外的 SQL 语句,从而实现非法操作,获取数据库数据,服务器提权等,很多机构将 SQL 注入作为第一危险的安全漏洞。 原理 SQL 注入攻击是通过操作输入来修改 SQL 语句,用以达到执行代码对 WEB 服务器进行攻击的方法。简单的说就是在 post/get 表单、输入域名或页面请求的查询字符串中插入 SQL 命令,最终使 web 服务器执行恶意命令的过程。 SQL 注入语句一般都嵌入在普通的 HTTP 请求中,比较难过滤,攻击者可以不断调整攻击的参数,导致 SQL 注入变种极多,而且互联网上有很多 SQL 注入工具,不需要专业知识也能自如运用。 简单实例 首先建立简单表,在 user_info 中写入账号 acc 与密码 pwd , qqq 表用来测试 drop CREATE TABLE ` user_info ` ( ` id ` int ( 11 ) NOT NULL AUTO_INCREMENT , ` account ` varchar ( 20 ) NOT NULL , ` password ` varchar ( 20 ) NOT NULL , PRIMARY KEY ( ` id ` ) ) ENGINE =

SQLmap是一款用来检测与利用SQL漏洞的注入神器。

给你一囗甜甜゛ 提交于 2020-03-06 07:15:56
sqlmap 重要参考 http://www.kali.org.cn/forum-75-1.html SQLmap是一款用来检测与利用SQL漏洞的注入神器。开源的自动化SQL注入工具,由Python写成,具有如下特点: 完全支持MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、HSQLDB和Informix等多种数据库管理系统。 完全支持布尔型盲注、时间型盲注、基于错误信息的注入、联合查询注入和堆查询注入。 在数据库证书、IP地址、端口和数据库名等条件允许的情况下支持不通过SQL注入点而直接连接数据库。 支持枚举用户、密码、哈希、权限、角色、数据库、数据表和列。 支持自动识别密码哈希格式并通过字典破解密码哈希。 支持完全地下载某个数据库中的某个表,也可以只下载某个表中的某几列,甚至只下载某一列中的部分数据,这完全取决于用户的选择。 支持在数据库管理系统中搜索指定的数据库名、表名或列名 当数据库管理系统是MySQL、PostgreSQL或Microsoft SQL Server时支持下载或上传文件。 当数据库管理系统是MySQL、PostgreSQL或Microsoft SQL Server时支持执行任意命令并回现标准输出。 安装

CTFHub 技能树 之 SQL注入

删除回忆录丶 提交于 2020-03-05 20:24:28
标题CTFHub 技能树 之 SQL注入 进入CTFHub官网 一:SQL整数型注入 开题出现的界面是这样的,根据提示输入 1 后,出现两处回显,这里可以使用 工具注入也可以使用手工注入。 手工注入可以看一下这个博主写的 查看手工注入 如果想了解工具的话就继续往下看吧☺ 我使用的是 kali 自带的 sqlmap 工具 1)因为一开始我们就已经知道存在注入点,于是这个步骤可有可无,但是还是可以看看数据库版本信息 sqlmap - u http: //challenge-96abcc6d23e688fa.sandbox.ctfhub.com:10080/?id=2 2)读取数据库库名 sqlmap - u http: //challenge-96abcc6d23e688fa.sandbox.ctfhub.com:10080/?id=1 --dbs 得到数据库 sqli 3)得到库名就开始爆表 sqlmap - u http: //challenge-96abcc6d23e688fa.sandbox.ctfhub.com:10080/?id=1 -D sqli --tables 表里有一个表名为 flag 的表 4)既然库名表名都有了,接下来就是看表结构 sqlmap - u http: //challenge-96abcc6d23e688fa.sandbox.ctfhub.com

最近sql注入数据库被更改泛滥,以下提供一个.net程序防止sql注入的方法

一笑奈何 提交于 2020-03-05 07:59:45
最近sql注入数据库被更改泛滥:状况如下:“ </title> </pre>> <script src=http://sb.5252.ws:88/107/1.js> </script> <”, 以下提供一个.net程序防止sql注入的方法(过滤敏感语句的仅供参考)方式如下:在Global.asax文件下面加入如下代码: void Application_BeginRequest(Object sender, EventArgs e) { StartProcessRequest(); } #region SQL注入式攻击代码分析 /// <summary> /// 处理用户提交的请求 /// </summary> private void StartProcessRequest() { try { string getkeys = ""; string sqlErrorPage = "../default.aspx";//转向的错误提示页面 if (System.Web.HttpContext.Current.Request.QueryString != null) { for (int i = 0; i < System.Web.HttpContext.Current.Request.QueryString.Count; i++) { getkeys = System.Web

C# 增删改查应用集结

被刻印的时光 ゝ 提交于 2020-03-05 06:33:25
ADO.NET技术,该技术用于.net程序操作数据库 ADO的组成: 1.数据提供程序 a.Connection:连接对象,用于指定数据库服务器的相关信息(数据库服务名 数据库用户名 密码等) b.Command:命令对象,用于对数据库执行增删改查的操作,会提供对应的操作方法 2.数据集 对数据库的操作: 1.导名称空间System.Data.SqlClient (用于连接Sql server数据库) 2.创建连接对象 //连接字符串的格式: server=数据库服务名;database=数据库;uid=用户名;pwd=密码 String conStr = "server=192.168.0.102;database=MySchool3;uid=sa;pwd=sa"; SqlConnection cn = new SqlConnection(conStr); 3.打开连接 cn.open(); 4.创建命令对象 String sql = "delete student where studentId="+this.textBox1.Text; SqlCommand cmd = new SqlCommand(sql,con); 5.执行命令对象 int count=cmd.ExecuteNonQuery();//该方法的返回值:sql语句执行后 受影响的行数

sql注入练习

南楼画角 提交于 2020-03-04 19:08:12
sql 注入实操 and 1=1 and 1=2测试注入点 发现注入点 sql注入 order by n 测试列数 测试结果为4 爆库 版本 用户 union selec 1,2,database(),4 union selec 1,2,version(),4 union selec 1,2,user(),4 爆破表 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema = ‘webscantest’ ),3,4 爆字段 union select 1,(select group_concat(column_name) from information_schema.columns where table_schema = ‘webscantest’ and table_name=‘accounts’ ),3 ,4 查询内容 union select 1,group_concat(uname,0x3a,passwd),3,4 from webscantest.accounts 来源: CSDN 作者: qq_43193681 链接: https://blog.csdn.net/qq_43193681/article/details

Java面试那点事——网络200306

♀尐吖头ヾ 提交于 2020-03-04 06:37:23
1. 什么 XSS 攻击?如何预防? 跨站脚本攻击 【存储性(持久型)】 存储型 XSS,也叫持久型 XSS,主要是将 XSS 代码发送到服务器(不管是数据库、内存还是文件系统等。),然后在下次请求页面的时候就不用带上 XSS 代码了。用户输入的带有恶意脚本的数据存储在服务器端。当浏览器请求数据时,服务器返回脚本并执行。 最典型的就是留言板 XSS。 【反射型(非持久型)】 反射型 XSS,也叫非持久型 XSS,把用户输入的数据 “反射” 给浏览器。通常是,用户点击链接或提交表单时,攻击者向用户访问的网站注入恶意脚本。XSS 代码出现在请求 URL 中,作为参数提交到服务器,服务器解析并响应。响应结果中包含 XSS 代码,最后浏览器解析并执行。从概念上可以看出, 反射型 XSS 代码是首先出现在 URL 中的,然后需要服务端解析,最后需要浏览器解析之后 XSS 代码才能够攻击 。 如何预防 : 内容安全策略 (CSP) 入参字符过滤 出参进行编码 入参长度限制 HttpOnly 阻止 Cookie 劫持攻击 服务器端 Set-Cookie 字段设置 HttpOnly 参数,这样可以避免 Cookie 劫持攻击。这时候,客户端的 Document.cookie API 无法访问带有 HttpOnly 标记的 Cookie, 但可以设置 cookie。 2. 什么是 CSRF 攻击