DNUICTF-Easyinject

本文介绍了LDAP注入的基本概念,通过复现注入过程展示了如何利用LDAP注入寻找目标信息。在理解LDAP语法的基础上,通过调整查询参数,最终成功获取到flag。同时,文章引发对for循环中else语句逻辑的思考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识点

ldap注入

ldap简介与ldap注入

LDAP(Lightweight Directory Access Protocol):轻量级目录访问协议,是一种在线目录访问协议,主要用于目录中资源的搜索和查询,是X.500的一种简便的实现。那么转换成人话就是说,LDAP是用于访问目录服务(特别是基于X.500的目录服务)的轻量级客户端服务器协议,它通过TCP/IP传输服务运行。

ldap注入,其实它的攻击手法和SQL注入的原理非常相似,在有漏洞的环境中,这些查询参数没有得到合适的过滤,因而攻击者可以注入任意恶意代码。

ldap语法

=(等于)
例如,如果希望查找属性giveNname值为John的所有对象,可以使用(givenName=John)。这会返回对应条件的所有对象。

&(逻辑与)
例如,如果希望查找居住在 Dallas 并且givenName为John的所有对象,可以使用(&(givenName=John)(l=Dallas))。
请注意,每个参数都被属于其自己的圆括号括起来。整个 LDAP 语句必须包括在一对主圆括号中。操作符 & 表明,只有每个参数都为真,才会将此筛选条件应用到要查询的对象。

|(逻辑或)
例如,如果希望查找属性givenName值为Jhon或者Jack的所有对象,可以使用(|(givenName=Jhon)(givenName=Jack))。

!(逻辑非)
例如,如果需要查找givenName为John的对象以外的所有对象。则应使用如下语句:(!givenName=John)

(*)(通配符)
可使用通配符表示值可以等于任何值。使用它的情况可能是:您希望查找具有职务头衔的所有对象。为此,可以使用(title=*),这会返回title属性包含内容的所有对象。

注入复现

查看源码,会有提示,输入测试
在这里插入图片描述
发现提示,flag是一个邮件
在这里插入图片描述
所以尝试ldap注入,因为知识盲区,查看WP,得知是ldap注入,以及大佬推测的判断语句

(&(pass=……)(|(user=……)(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值