社区
ASP
帖子详情
问号后传参数遇到空格则截断,如何解决?
shzrxml
2003-10-28 06:22:23
问号后传参数遇到空格则截断,如何解决?
例如:
href=1.asp?ankenno="00 111"
则传出的参数只有"00"而丢掉了"111"
...全文
89
10
打赏
收藏
问号后传参数遇到空格则截断,如何解决?
问号后传参数遇到空格则截断,如何解决? 例如: href=1.asp?ankenno="00 111" 则传出的参数只有"00"而丢掉了"111"
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
csdnhbgjh
2003-11-10
打赏
举报
回复
<a href="&filename&"?page="&n&"&kindname="&Server.URLEncode(kindname)&"&partkind="&Server.URLEncode(partkind)&">Last</a>
肯定行.
itcoo
2003-10-29
打赏
举报
回复
使用server.URLencode(rs("ankenno"))即可
sumyan
2003-10-29
打赏
举报
回复
用Server.URLCode(要传递的参数表)
lihua9666
2003-10-28
打赏
举报
回复
我也出现过这样的问题,后来我是通过<input type=text ..>实现参数传送的。
par
2003-10-28
打赏
举报
回复
你试过它会截断吗?
不会的.系统会自动帮你把URL编码的.
前题是你的链接格式要写好!!!
href="1.asp?ankenno='<%=AnkNo%>'"
^ 要用引号包住.如果AnkNo有非法字符就要过滤了.
jcjks杨
2003-10-28
打赏
举报
回复
在每个页面的Request.QueryString中都编历一下所传来的参数。分别做去空格处理就行
shzrxml
2003-10-28
打赏
举报
回复
但我要传的参数是变量
如 href=1.asp?ankenno=<%"AnkNo"%>
AnkNo是个随时变换的值.
谢谢!
ssm1226
2003-10-28
打赏
举报
回复
href=1.asp?ankenno=00%20111
msdner
2003-10-28
打赏
举报
回复
不懂,帮你顶~
shzrxml
2003-10-28
打赏
举报
回复
谢谢各位!
GET 方式提交的含有特殊字符的参
数
有关GET方式提交的含有特殊字符的参
数
JS方面可以使用前面一文中的encode等方法。
常用外文
数
据库的检索利用综合类.ppt
常用外文
数
据库的检索利用综合类.ppt
送强力打狗棒,文末领取
我一直想找一个通用性的过狗方法,预期是这个绕过方法不会涉及到下面3个方面 (1)中间件,如iis、apache (2)
数
据库,如mysql、sql server (3)脚本语言,如php、aspx、asp 网上关于安全狗的sql绕过研究,大多
数
是fuzz绕过的帖子,fuzz方法常常使用注释绕过,涉及到
数
据库特性,而且广泛用于注释语法的星号(*)可能会被网站自带的防恶意代码模块拦截了,在实践中体验不好。太多fuzz过waf的文章,多
数
是使用注释绕过,在我看来,所有fuzz绕过,本质就是正则匹配逃逸。 我计划写一篇脚本小子最爱的,涉及知识点最少,能直接放工具里全自动跑sql注入的过狗文章。 0x01 先说说安全狗是如何判断恶意代码 安全狗、云锁、D盾等软件waf,内置一套正则匹配检测规则。这类软件waf对恶意代码的认识很有限。例如安全狗iis版,只知道要防护的服务器是iis作为中间件,并不知道要防护的服务器上面部署的
数
据库类型[Mysql|Sql Server|Access..]以及脚本语言类型[php|aspx|asp...]。再者,由于是依靠正则规则看恶意代码,所以对恶意代码拦截不全面。 0x02 起因 某天,在本地搭建了一个Asp+Access+IIS环境,测试安全狗Bypass 用淘气字符串就绕过了安全狗的拦截。由于只能用在某些sql语句上,具体是哪一个字符串就无足轻重了。第一次在本地环境测试安全狗就绕过了,刚好那天看到论坛在征集优秀文章,计划着写处女作投稿。 附上地址,虽然字符串
数
量不多,但是确实很淘气... https://github.com/minimaxir/big-list-of-naughty-strings/blob/master/blns.txt 淘气字符串 我反复提交包含sql注入的
数
据包,Fuzz到了字符串[removed] 只有这一处,提示
数
据库报错了。那么,安全狗是分析到了什么?安全狗是用正则匹配看代码的,所看到,肯定不是一大串字符。反复删减,最终出来了 ///.js 0x03 绕过测试 ///.js js可以换成rm/wm/png/jpg等静态文件后缀 测试发现,只要url包含 ///.js 就会触发内置的白名单,直接被iis版安全狗放行。既然是触发白名单,我直接把http防护策略全部开启,把防护等级调到最高来测试效果。 http://192.168.29.131:8980/sql.php?id=1 and 1=1 (拦截) http://192.168.29.131:8980/sql.php?id=1 and 1=1&safe;=///.js? (放行) http://192.168.29.131:8980/sql.php/1.js?id=1 and 1=1 (放行) 触发白名单直接放行url,顺带放行了XSS攻击代码,连xss过狗代码也不用研究了,哈哈。 http://192.168.29.131:8980/sql.php?id=1 and 1=1&xss;=[removed]alert(/xss/)[removed]&safe;=///.js? (既有sql注入,又有xss攻击,放行) http://192.168.29.131:8980/sql.php?id=1 and 1=1&xss;=[removed] (很evil,也放行) 还能在url传输什么,放行恶意代码,脑洞... 不仅是放行url,连cookie位置也放行了。 但是当恶意代码放在post
数
据,就绕不过安全狗。 亲测,对于安全狗iis版,php,aspx,asp均能用这种方式过狗。 http://.../sql.php?safe=///.js?&id=1 http://.../sql.aspx?safe=///.js?&id=1 http://.../sql.asp?safe=///.js?&id=1 如果是Apache版安全狗,可以试试 http://.../sql.php/1.js?id=1 http://.../sql.aspx/1.js?id=1 备注:更新了图片,最新的iis版本,亲测,本文提供的两个方法 依然有效~~~ (思考花了一个星期,认认真真写稿也就两个晚上,8号的iis版已经更新了一次,然而漏洞依然存在,看来官方人员一直都不知道) 影响范围: 针对最新的安全狗iis版,从最右边开始匹配,存在某一个
问号
?附近的字符串满足正则表达式 \/.*?\/.*?\/.*?\.js(其中的js可以替换成如png、jpg等静态文件后缀)例如 ///.js?或http://ip/1.jpg? 就会触发内置白名单,无论
数
据库和脚本语言类型。触发白名单会放行url和cookie位置的恶意代码,但依然检查post的
数
据。 (Apache版的规则库不一样,手工测试出精简的字符串,但是url无效访问,所以Apache版的还只能按照http://.../sql.php/1.jpg?id=1触发白名单) 0x04 搜索公开技术贴 准备写稿了,防止
遇到
造轮子撞车,变换关键词,搜搜互联网最近半年的公开过狗技术帖。找到了一个造轮子的博客https://www.jianshu.com/p/507439c2dd94 看图。这个造轮子方法已经很普遍出现在各种BypassWaf文章里面。 我的观点:安全狗不认识什么是php,所以这个bypass没挖掘到绕过的本质。而且有些php网站不支持PATH_INFO特性。对问题本质的理解不一样,如果是思考如何触发安全狗的正则匹配规则,就能发现这个绕过方法可以推广到aspx和asp。 虽然方法很简单,发现了如何触发内置白名单,放行恶意代码,但是无法绕过恶意代码出现在post
数
据的情况。美中不足,思绪一度搁浅,因为我计划写一篇“脚本小子最爱,涉及知识点最少,能直接放工具里全自动跑sql注入的过狗文章”。 0x05 峰回路转 择日再度整理思路,翻看手里的资料。再次看到上次那个造轮子博客。看到0x04造轮子三个字,我在思考什么是造轮子?一味地造轮子本身没有错,错在看不到车子,不清楚什么轮子最适合,于是就有了四方形,三角形,椭圆形的轮子,同样都是能上路的轮子。我的思维跳跃到了那个经典的fuzz造轮子代码。曾经用这个代码Fuzz一个小时的我,就觉得fuzz代码对sql语句的理解不多,出现很多没必要的测试。 手工测试sql语句的经验告诉我,所有fuzz过狗payload本质都是正则匹配逃逸(包括特殊的
截断
),正则匹配逃逸的核心要点绝不是/××/注释。于是对造轮子作者的payload进行测试,发现最终有用的是#a (安全狗4.0) 所以说,注释绕过的是 # 配合 \n id=1 union select 1,2,3 (拦截) id=1 union# select 1,2,3 (拦截) id=1 union#a select 1,2,3 (放行) 原理:安全狗
遇到
注释符号 # 就会丢弃后边代码的检测。为了提防使用回车\n绕过正则过滤,只是拦截了# ,正则规则库没考虑到#+字符串+ 的情况,造成了BypassWaf 改写了个 tamper ,命名为Bypassdog40.py (成功测试了iis版安全狗4.0和apache版安全狗4.0) 核心代码只有一条,把所有
空格
替换为 #a if payload: retVal = re.sub(r"\s", r"#a ", payload) 执行 sqlmap -u “http://192.168.29.131:8980/sql.php?id=1” -v 3 --random-agent --tamper=Bypassdog40.py 成功跑出所有sql注入payload 紧接着又测试注入点在post和cookie的情况,自动化注入过程很顺利。 补充:安全狗Apache3.5 规则刚好相反,拦截#a ,放行# ,命名tamper为 Bypassdog35.py 0x06总结 真理总是直接,甚至是简单的 本文包含了两个过狗方法: 一个是触发内置白名单的正则规则,能放行url和cookie的恶意代码检测,包括了xss攻击。美中不足就是绕不过post
数
据的恶意代码检查。 另一个Bypass方法是传统方法,提供了很简单的tamper,核心代码只有一句,可以用sqlmap跑自动化,大致可以通杀安全狗。
遇到
无法读
数
据库情况,例如拦截了INFORMATION_SCHEMA,可以配合触发内置白名单的方法,直接放行。 MySQL #单行注释 -- 单行注释(特别注意,-- 后有个
空格
!!!) /*多行注释*/ MS SQL Server -- 单行注释 /*多行注释*/ Oracle REM单行注释 -- 单行注释 /*多行注释*/ 新的两个tamper命名为Bypassdog400 和Bypassdog350 适用于 MS SQL Server和Oracle
php简单截取字符串代码示例
本文实例讲述了php简单截取字符串的方法。分享给大家供大家参考,具体如下: //截取摘要 public static function mbsubstr($str){ $strleng = mb_strlen($str,"utf8"); $mbstr = mb_substr($str,0,140,'utf8'); $strdstr = mb_substr($str,140,$strleng,'utf8'); $strlengs = mb_strlen($strdstr,'utf8'); $strc = ""; for($i=0;$i<$strlengs;$i++){
js编码、解码函
数
介绍及其使用示例
js对文字进行编码涉及3个函
数
:escape,encodeURI,encodeURIComponent,另外还有相对应的解码函
数
,本文对编码及
解决
函
数
坐下介绍,感兴趣的朋友可以参考下
ASP
28,409
社区成员
356,971
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章