Java安全编码之用户输入

访客6年前黑客文章635

1、传统Web使用与新式移动使用
(1)传统Web使用:浏览器 HTTP 服务器(2)新式移动使用:APP HTTP 服务器
从安全视点看,传统Web使用与新式移动使用没有本质区别
2、Web使用安全的中心问题是什么?
用户提交的数据不可信是Web使用程序中心安全问题
用户能够提交恣意输入
例如:
√ 恳求参数->屡次提交或许不提交√ 修正Cookie√ 修正HTTP信息头√ 恳求次序->越过或许打乱
3、Web使用防护
(1)完善的反常处理(2)监控(3)日志:记载重要事务、反常的具体恳求信息
4、对输入的处理
主张选用:白名单尽量防止:净化或黑名单
0x01 SQL注入
1、原理:
(1)合法输入:
id=1
SELECT * FROM users WHRER id='1';
(2)歹意注入:
id=1' or '1'='1
SELECT * FROM users WHRER id='1' or 'a'='a';
2、Java代码剖析(JDBC)
(1)不合规代码(SQL参数拼接)
public class SQLInject {
    public static void main(String[] args)throws Exception{
        //正常输入
        select("1");
        // 歹意输入
        select("' or 'a'='a");
    }
    public static void  select(String id){
        //声明Connection目标
        Connection con;
        //驱动程序名
        String driver = "com.mysql.jdbc.Driver";
        //URL指向要拜访的数据库名mydata
        String url = "jdbc:mysql://localhost:3306/mybatis";
        //MySQL装备时的用户名
        String user = "root";
        //MySQL装备时的暗码
        String password = "budi";
        //遍历查询成果集
        try {
            //加载驱动程序
            Class.forName(driver);
            //1.getConnection()办法,衔接MySQL数据库!!
            con = DriverManager.getConnection(url,user,password);
            if(!con.isClosed())
                System.out.println("Succeeded connecting to the Database!");
            //2.创立statement类目标,用来履行SQL句子!!
            Statement statement = con.createStatement();
            //要履行的SQL句子
            String sql = "select * from users where id='"+id+"'";
            //3.ResultSet类,用来寄存获取的成果集!!
            ResultSet rs = statement.executeQuery(sql);
            System.out.println("-----------------");
            System.out.println("履行成果如下所示:"); 
            System.out.println("-----------------");
            String age,name;
            while(rs.next()){
                //获取stuname这列数据
                name = rs.getString("name");
                //获取stuid这列数据
                age = rs.getString("age");
                //输出成果
                System.out.println(name + "t" + age);
            }

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]  黑客接单网

相关文章

探究Flask/Jinja2中的服务端模版注入(二)

在探究Flask/Jinja2中的服务端模版注入Part1中,我开端的方针是找到文件的途径或许说是进行文件体系拜访。之前还无法达到这些方针,可是感谢朋友们在之前文章中的反应,现在我现已可以完成这些方针...

PHP反序列化与WordPress一些意外BUG的风趣结合

几个月前,我正在编写一篇关于PHP反序列化缝隙的博客文章,决定为这篇文章找一个实在方针,能够让我将测试数据传输给PHP unserialize ()函数来完结演示意图。所以我下载了一批WordPres...

网络爬虫暗藏杀机:在Scrapy中利用Telnet服务LPE-黑客接单平台

网络抓取结构中运用最多的莫过所以scrapy,但是咱们是否考虑过这个结构是否存在缝隙妮?5年前曾经在scrapy中爆出过XXE缝隙,但是这次咱们发现的缝隙是一个LPE。 经过该缝隙能够获得shell,...

恣意用户暗码重置(四):重置凭据未校验

在逻辑缝隙中,恣意用户暗码重置最为常见,或许出现在新用户注册页面,也或许是用户登录后重置暗码的页面,或许用户忘掉暗码时的暗码找回页面,其间,暗码找回功用是重灾区。我把日常浸透过程中遇到的事例作了缝隙成...

XLoader与FakeSpy的相关以及与Yanbian Gang的联系

XLoader和FakeSpy是最近手机要挟范畴两款干流的歹意软件宗族。XLoader最早是2019年4月被陈述运用DNS缓存投毒或DNS诈骗技能来用歹意安卓APP从受害者设备中盗取PII和金融数据,...

PHP的两个特性导致waf绕过注入

1、HPP HTTP参数污染 HTTP参数污染指的是,在URL中提交相同键值的两个参数时,服务器端一般会进行一些处理。比方Apache就要以最终一个参数为准,比方: user.php?id=111&a...