首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
chat
flutter
require
cookie
split
random
solr
frameworks
bash
text
erlang
loops
dockerfile
subset
runtime
bytecode
settings
callback
hashcode
hook
char
email
window
sum
byte
controller
md5
main
include
install
heap
jsp
schema
blob
php
get
express
audio
join
export
spring
dll
javascript
tags
keyword
string
dagger
hashtable
js
config
grid
instance
perl
filter
tree
php8
expression
web3
c语言
version
substring
fetch
process
数组
python2
vbscript
node.js
eval
range
default
header
scala
cpython
list
search
iostream
command
emoji
regex
当前位置:
开发笔记
>
编程语言
> 正文
Discuz2.2F注册程序过滤不严漏洞
作者:lanshan1126141 | 来源:互联网 | 2017-06-26 05:54
文章标题:Discuz2.2F注册程序过滤不严漏洞。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类
我知道 Discuz 2.2F 有两个致命漏洞,但是官方也发布了更新版本,不知道这里存在不,不管怎么说,获得 webshell 是最基本的,不然一切都不可能,恰好 Discuz 2.2F 给我们提供了条件,访问 http://172.16.0.125/forumdata/illegallog.php ,返回“ Access Denied ”,漏洞不存在,换一个,这个 2.2F 的早期版本可以注册相同的 ID ,不过对于繁体的论坛的中文名注册会变乱码,我只测试了英文名的,不管,先写一个表单:
用户名 :
密码:
确认密码:
E-mail :
这个漏洞不是我发现的,但是我自己分析过,在我们的内部论坛有我的分析报告,现在公布出来。先说说这个漏洞的利用和存在的理由。
register.php 的代码中有如下代码:
$email = trim($email);
if(!$doublee && strstr($email, @)) {
$emailadd = "OR email=$email";
}
这里是说如果不存在 $doublee 这个变量,并且判断邮件地址格式正确,就指定 $emailadd 这个变量为 "OR email=$email" ,为后面的 SQL 语句做准备。往下有一段代码如下:
$query = $db->query("SELECT COUNT(*) FROM $table_members WHERE username=$username $emailadd ");
if($db->result($query, 0)) {
showmessage(profile_account_duplicate);
}
默认 $emailadd = "OR email=$email" 是满足的,所以上面的 SQL 语句就变成判断用户名和邮箱,有任意一个相同,就提示“该用户名或 Email 地址已经被注册了,请返回重新填写。”
利用的方法是给 $doublee 赋值,然后就可以饶过 $emailadd = "OR email=$email" 这句,然后再自己构造 $emailadd 这个变量,这个就是我在本地表单的 action 构造的原因。
然后这个语句到了上面的 SQL 语句那里,就变成:
SELECT COUNT(*) FROM $table_members WHERE username=$username and uid=100000
既然是同时用用户名和用户 ID 判断,那么这个肯定是不成立的了,就可以顺利跳过
if($db->result($query, 0)) {
showmessage(profile_account_duplicate);
}
直接到达这里插入记录:
$db->query("INSERT INTO $table_members (........) VALUES (........)");
也就注册了相同的用户名。然后再看看 memcp.php ,看到更新用户资料的那里, SQL 语句居然是这样。
UPDATE $table_members SET ...... WHERE username=$discuz_user
直接更新所有用户名为 XX 的资料。呵呵,就达到了修改管理员的密码的目的。呵呵, DZ 论坛没有用 id 来判断更新是不严谨的。没有考虑到唯一性……
php
sql
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
sql
C# - 解决从数据库中筛选未使用ID的问题
本文探讨了如何在C#应用程序中有效处理来自两个不同数据库的数据,特别是当需要从一个数据库中选择不在另一个大型集合中的ID时遇到的挑战和解决方案。 ...
[详细]
蜡笔小新 2024-12-04 21:40:43
sql
解决phpMyAdmin运行错误:mysqli_init(): 属性访问尚未允许
本文探讨了在使用phpMyAdmin过程中遇到的mysqli_init()函数错误,并提供了有效的解决方案。 ...
[详细]
蜡笔小新 2024-12-04 17:35:56
char
SQL查询中字符集导致的结果差异探讨
本文探讨了在执行SQL查询时遇到的因字符集不同而导致查询结果差异的问题,特别是涉及中文字符时。文章分析了在不同字符集设置下,SQL查询结果的变化,并提供了详细的解决方案。 ...
[详细]
蜡笔小新 2024-12-04 16:39:13
install
oracle中的数据集合操作
一、数据更新操作DML语法中主要包括两个内容:查询与更新,更新主要包括:增加数据、修改数据、删除数据。其中这些操作是离不开查询的。1、增加数据语法:INSERTINTO表名称[(字 ...
[详细]
蜡笔小新 2024-12-04 12:15:42
install
SQL注入实验:SqliLabs第38至45关解析
本文深入探讨了SqliLabs项目中的第38至45关,重点讲解了堆叠注入(Stacked Queries)的应用技巧及防御策略。通过实际案例分析,帮助读者理解如何利用和防范此类SQL注入攻击。 ...
[详细]
蜡笔小新 2024-12-04 11:17:35
include
KKCMS代码审计初探
本文主要介绍了KKCMS的安装过程及其基本功能,重点分析了该系统中存在的验证码重用、SQL注入及XSS等安全问题。适合初学者作为入门指南。 ...
[详细]
蜡笔小新 2024-12-04 09:30:07
include
解析程序员与软件工程师的角色差异
本文深入探讨了程序员与软件工程师之间的主要区别,包括它们的职业定位、技能要求以及工作内容等方面的不同,旨在帮助读者更好地理解这两个角色的特点。 ...
[详细]
蜡笔小新 2024-12-03 11:53:09
md5
开发笔记:新手DVWACSRF
开发笔记:新手DVWACSRF ...
[详细]
蜡笔小新 2024-12-03 10:33:16
char
应用程序配置详解
本文介绍了配置文件的关键特性及其在不同场景下的应用,重点探讨了Machine.Config和Web.Config两种主要配置文件的用途和配置方法。文章还详细解释了如何利用XML格式的配置文件来调整应用程序的行为,包括自定义配置、错误处理、身份验证和授权设置。 ...
[详细]
蜡笔小新 2024-12-03 19:57:42
char
解决Windows 2003上MySQL连接失败的问题
本文详细探讨了在Windows Server 2003环境下遇到MySQL连接失败(错误代码10061)的解决方案,包括通过卸载特定的Windows更新和调整系统注册表设置的方法。 ...
[详细]
蜡笔小新 2024-12-03 19:23:31
char
解决 SQL Server 2008 安装时系统配置初始化失败问题
尝试从 MySQL 转向 SQL Server 2008 时遇到了安装错误,提示“系统配置未能初始化”,错误代码为 0x84B10001。怀疑可能是由于之前的 MySQL 安装残留导致的注册表问题。寻求专家建议。 ...
[详细]
蜡笔小新 2024-12-03 19:15:15
main
使用DataGridViewComboBoxColumn实现数据绑定与操作
本文详细介绍如何在DataGridView中使用DataGridViewComboBoxColumn来加载、选择和保存数据库中的数据,提供具体的实现步骤和示例代码。 ...
[详细]
蜡笔小新 2024-12-03 18:21:44
main
GBae 8s SQL 指南:SAVEPOINT语句详解
本文详细介绍了如何在SQL查询中使用SAVEPOINT语句进行事务管理,以及如何通过多列排序增强查询结果的组织性。例如,通过在ORDER BY子句中指定多个列,可以实现更加细致和灵活的数据排序。 ...
[详细]
蜡笔小新 2024-12-03 17:34:49
sum
Web安全入门:MySQL基础操作与SQL注入防范
本文详细介绍了MySQL数据库的基础操作命令,包括数据库和表的基本管理,以及数据的增删查改等常用操作。同时,针对Web安全领域常见的SQL注入问题,提供了初步的理解和防范措施。 ...
[详细]
蜡笔小新 2024-12-03 14:00:48
sum
技术分享:从Oracle数据库中使用REGEXP_SUBSTR提取括号内容
本文探讨了如何利用Oracle的REGEXP_SUBSTR函数高效地从复杂字符串中提取括号内的特定值,提供了详细的示例和解决方案。 ...
[详细]
蜡笔小新 2024-12-03 13:44:40
lanshan1126141
这个家伙很懒,什么也没留下!
Tags | 热门标签
chat
flutter
require
cookie
split
random
solr
frameworks
bash
text
erlang
loops
dockerfile
subset
runtime
bytecode
settings
callback
hashcode
hook
char
email
window
sum
byte
controller
md5
main
include
install
RankList | 热门文章
1
SSTI漏洞学习(下)——Flask/Jinja模板引擎的相关绕过
2
反链数对网站优化的意义
3
【转】 iOS日常学习iOS10上关于NSPhotoLibraryUsageDescription等问题
4
java找不到对象异常_找不到对象错误
5
如何在yum中安装apache与php
6
PHP(Math的调用)
7
小程序和公众号的相互跳转
8
vueawesomeswiper爬坑记录之修改pagination中bullet小圆点的颜色样式穿透写法
9
【味宫】尖椒炒肉
10
PHP中Exception异常处理类的使用详解php类库
11
【jmetermavenplugin】七、使用其他Java库+JVM配置
12
如何快速实现“延时消息”?
13
Seata原理!
14
JavaSE基础语法(四)javaSE进阶
15
事务(Transaction)基本概念(转自山水缘)
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有