字符转为Unicode编码的小方法

关于软件系统漏洞的问题,其中最常见的一个是跨站脚本漏洞,网上有很多相关的资料。

突发奇想,怎么能将写好的攻击代码转为Unicode编码后,进行攻击呢?明文攻击很容易被拦截,但是转义后则成功的概率比较大。

但是网上的资料,都是介绍攻击的原理,很少有说怎么将攻击代码转为Unicode编码,以下是同事写的一个小方法,供大家写拦截功能时,测试用。

不建议使用该代码做非法勾当!后果自负。

package com;

/**
 * 字符转Unicode编码(UTF-16)
 */
public class UnicodeUtil {
	public static void main(String[] args) {
		String str = "<script>";
		
		char [] chars = str.toCharArray();
		String ret = "";
		
		for (int i = 0; i < chars.length; i++) {
			ret += "%";
			ret += transferStr2Utf16(String.valueOf(chars[i]));
		}
		System.out.println(ret);
	}

	private static String transferStr2Utf16(String args) {
		char [] chars = "0123456789ABCDEF".toCharArray();
		StringBuilder sb = new StringBuilder("");
		byte[] bs = args.getBytes();
		int bit;
		for (int i = 0; i < bs.length; i++) {
			bit = (bs[i] & 0x0f0) >> 4;
			sb.append(chars[bit]);
			bit = bs[i] & 0x0f;
			sb.append(chars[bit]);
			sb.append(' ');
		}
		return sb.toString().trim();
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值