java web sql注入测试(2)---实例测试
2015-12-02 19:12
387 查看
以下篇幅,用一个简单的实例说明如何进行测试。
功能:根据用户NAME删除用户,采用的是SQL拼接的方式,核心代码部分如下:
public static void deleteByName(String name)throws Exception{
Session session = seesionfactory.openSession();
org.hibernate.Transaction tx = session.beginTransaction();
try
{
String hql="delete from Department where name='" + name + "'";
Query query = session.createQuery(hql);
int res = query.executeUpdate();
tx.commit();
System.out.println(res);
}
catch(HibernateException e)
{
System.out.println("deleteByName has Exception !");
e.printStackTrace();
if(null != tx)
{
tx.rollback();
}
}
数据库相应的表中含有记录如下:
测试代码:
String name="1";
deleteByName(name);
执行后数据库一条记录都是不会删除的。
而执行以下测试代码:
String name="1' or '1'='1";
deleteByName(name);
执行后数据库的两条记录全部清空。
明明数据库里是没有name=1的记录存在的,可是居然全部删除了,原因就是存在恶意SQL,系统没有进行适当的处理,导致where条件永远为真,删除了表里的所有数据。
功能:根据用户NAME删除用户,采用的是SQL拼接的方式,核心代码部分如下:
public static void deleteByName(String name)throws Exception{
Session session = seesionfactory.openSession();
org.hibernate.Transaction tx = session.beginTransaction();
try
{
String hql="delete from Department where name='" + name + "'";
Query query = session.createQuery(hql);
int res = query.executeUpdate();
tx.commit();
System.out.println(res);
}
catch(HibernateException e)
{
System.out.println("deleteByName has Exception !");
e.printStackTrace();
if(null != tx)
{
tx.rollback();
}
}
数据库相应的表中含有记录如下:
测试代码:
String name="1";
deleteByName(name);
执行后数据库一条记录都是不会删除的。
而执行以下测试代码:
String name="1' or '1'='1";
deleteByName(name);
执行后数据库的两条记录全部清空。
明明数据库里是没有name=1的记录存在的,可是居然全部删除了,原因就是存在恶意SQL,系统没有进行适当的处理,导致where条件永远为真,删除了表里的所有数据。
相关文章推荐
- JavaEE_Mybatis_SpringMVC_Mybatis_lesson11_一对一关联映射(ResultMap/ResultType)
- 在cmd窗口运行需要加载含驱动的java程序
- java web sql注入测试(1)---概念概述
- java中的懒汉单例模式和饿汉单例模式
- java中static和final关键字
- java设计模式之单例模式
- 用Intellij IDEA 14.1创建Java Web项目
- java 实现断点续传
- Java运算符
- JAVA构造方法与方法是啥意思,方法重载方法覆盖俗谈
- JAVA构造函数(方法)与方法是啥意思
- 使用Spring JdbcTemplate实现CLOB和BLOB的存取
- 01-2安装离线springsource-tool-suite的时候非常缓慢问题解决方案
- Springfox swagger-ui 覆盖默认request host
- java解析中国行政区域并在页面显示实现动态逐级筛选
- JAVA代码 运算符
- 01-SpringMVC-HelloWorld
- 第三方包jintellitype实现Java设置全局热键
- java.lang.ClassCastException: java.lang.NoClassDefFoundError cannot be cast to java.lang.RuntimeException
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK