发现sql注入

在网站的登录处和注册处都发现了sql注入的痕迹

Pasted_image_20240729210829.png

经过fuzz,一些关键词:or、and等被强制过滤了,无法进行绕过。
Pasted_image_20240729210913.png

绕过waf

经过hunter搜索,获得了历史dns信息,确定了真实ip地址。直接访问ip如下:

Pasted_image_20240729210955.png

可以判断为宝塔搭建的,在burp设置中绑定域名和ip地址
Pasted_image_20240729211034.png

失败的sql注入

使用sqlmap进行注入,虽然绕过了waf,但是遇到了只能查询到当前数据库名,获取不到表名,也无法dump指定表和字段信息

Pasted_image_20240729211109.png

任意登录

本来想通过sql注入获取到用户和密码进行登录的,虽然跑不出来数据,但是想了下可以通过万能密码登录啊。

换个思路,使用' OR 1=1 AND 'fWVy'='fWVy登录

Pasted_image_20240729211203.png

任意文件上传

在个人信息处,可以上传个人照片,但是限制了上传大小为1M-5M(前端限制)

Pasted_image_20240729211241.png

这里上传的数据包如下,可以通过把图片后缀改为php达到任意文件上传的目的
Pasted_image_20240729211317.png

上传后通过刷新个人中心,获得上传后的地址。

这里有个问题就是,上传大文件(1M多)就会出现下面错误

Pasted_image_20240729211354.png

此外还判断了是否存在图片头。

解决办法就是php文件前面添加jpg的图片头内容

Pasted_image_20240729211435.png

上传
Pasted_image_20240729211515.png

访问上传后的文件就可以正常的访问phpinfo信息了
Pasted_image_20240729211553.png

phpinfo替换为webshell
Pasted_image_20240729211632.png

至此拿下了这个站点。