ASP代码审计学习笔记 -4.命令执行漏洞
2016-08-27 22:20
1366 查看
命令执行漏洞:
保存为cmd.asp,提交链接: http://localhost/cmd.asp?ip=127.0.0.1 即可执行命令
利用方式:
http://localhost/cmd.asp?ip=127.0.0.1|set
漏洞修复方式一:
把输入的值当作参数来执行,避免命令执行漏洞,可能会占用系统资源,不够优化。
漏洞修复方式二:
利用正则匹配ip,不符合不执行,比较合理的解决方法。
保存为cmd.asp,提交链接: http://localhost/cmd.asp?ip=127.0.0.1 即可执行命令
<%ip=request("ip") response.write server.createobject("wscript.shell").exec("cmd.exe /c ping "&ip&"").stdout.readall %>
利用方式:
http://localhost/cmd.asp?ip=127.0.0.1|set
漏洞修复方式一:
把输入的值当作参数来执行,避免命令执行漏洞,可能会占用系统资源,不够优化。
<% ip=request("ip") response.write server.createobject("wscript.shell").exec("cmd.exe /c ping """&ip&"""").stdout.readall %>
漏洞修复方式二:
利用正则匹配ip,不符合不执行,比较合理的解决方法。
<% ip=request("ip") If RegExpTest(ip) then response.write server.createobject("wscript.shell").exec("cmd.exe /c ping "&ip&"").stdout.readall else response.write("bad ip") end if Function RegExpTest(strng) Dim regEx,retVal,patrn Set regEx = New RegExp patrn="^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})){3}$" regEx.Pattern = patrn regEx.IgnoreCase = False retVal = regEx.Test(strng) If retVal Then RegExpTest = True Else RegExpTest = False End If End Function %>
相关文章推荐
- PHP代码审计笔记--命令执行漏洞
- PHP代码审计学习之命令执行漏洞挖掘及防御
- ASP代码审计学习笔记 -3.上传漏洞
- ASP代码审计学习笔记 -5.文件下载漏洞
- PHP代码审计笔记--代码执行漏洞
- ASP代码审计学习笔记 -2.XSS跨站脚本
- python 代码审计-命令执行漏洞(自己编写的代码)
- ASP代码审计学习笔记-1.SQL注入
- ASP.NET 学习笔记_04 Session、http、web开发原则、xss漏洞
- JVM学习笔记(二)------Java代码编译和执行的整个过程
- 黑马程序员之ASP.NET学习笔记:Http状态代码及其含义
- shell学习笔记(1)Linux下在一行执行多条命令
- Struts S2-016 远程任意命令执行漏洞检测代码
- 每日学习心得:CustomValidator验证控件验证用户输入的字符长度、Linq 多字段分组统计、ASP.NET后台弹出confirm对话框,然后点击确定,执行一段代码
- 黑马程序员之 ASP.NET学习笔记:jquery+ajax无刷新分页代码
- 【转】ant学习笔记之(ant执行命令的详细参数和Ant自带的系统属性)
- Hive任意命令/代码执行漏洞+渗透实例
- asp.net自定义控件代码学习笔记
- fvwm学习笔记之命令的执行 by stack
- JVM学习笔记(二)------Java代码编译和执行的整个过程