开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
main
分支 (1)
标签 (3)
main
1.3
1.2
1.1
main
分支 (1)
标签 (3)
main
1.3
1.2
1.1
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
main
分支 (1)
标签 (3)
main
1.3
1.2
1.1
SpringBootExploit
/
src
/
test
/
java
/
LdapClient.java
SpringBootExploit
/
src
/
test
/
java
/
LdapClient.java
LdapClient.java 5.52 KB
一键复制 编辑 原始数据 按行查看 历史
夏天 提交于 2022年04月17日 21:26 +08:00 . 更新1.3版本,支持SpringCloudGatewayRCE
/**
* @ClassName: LdapClient
* @Description: TODO
* @Author: Summer
* @Date: 2021年8月2日 11:00
* @Version: v1.0.0
* @Description:
**/
import java.util.Properties;
import javax.naming.NamingException;
import javax.naming.NamingEnumeration;
import javax.naming.directory.*;
import javax.naming.ldap.*;
/**
* Created by baikai on 8/17/16.
*/
public class LdapClient {
private String ldapUrl;
private String ldapUserDN;
private String ldapPwd;
public LdapClient(String ldapUrl, String ldapUserDN, String ldapPwd){
this.ldapUrl = ldapUrl;
this.ldapUserDN = ldapUserDN;
this.ldapPwd = ldapPwd;
}
/**
* Create LDAP user
* @param userName
* @param password
* @param uidNumber
* @param gidNumber
*/
public void createLDAPUser(String userName, String password, String uidNumber, String gidNumber){
LdapContext context = this.initLDAPContext();
Attributes matchAttrs = new BasicAttributes(true);
BasicAttribute objclassSet = new BasicAttribute("objectClass");
objclassSet.add("account");
objclassSet.add("posixAccount");
matchAttrs.put(objclassSet);
matchAttrs.put(new BasicAttribute("uid", userName));
matchAttrs.put(new BasicAttribute("cn", userName));
matchAttrs.put(new BasicAttribute("uidNumber", uidNumber));
matchAttrs.put(new BasicAttribute("gidNumber", gidNumber));
matchAttrs.put(new BasicAttribute("homeDirectory", "/home/" + userName));
matchAttrs.put(new BasicAttribute("userpassword", password));
matchAttrs.put(new BasicAttribute("description", "LDAP user."));
try {
context.bind("uid=" + userName + ",ou=People,dc=asiainfo,dc=com", null, matchAttrs);
} catch (NamingException e) {
e.printStackTrace();
}finally {
this.closeLdapContext(context);
}
}
/**
* Create LDAP user group
* @param groupName
* @param password
* @param gidNumber
*/
public void createLDAPUserGroup(String groupName, String password, String gidNumber){
LdapContext context = this.initLDAPContext();
Attributes matchAttrs = new BasicAttributes(true);
matchAttrs.put(new BasicAttribute("objectclass", "posixGroup"));
matchAttrs.put(new BasicAttribute("cn", groupName));
matchAttrs.put(new BasicAttribute("gidNumber", gidNumber));
matchAttrs.put(new BasicAttribute("userPassword", password));
try {
context.bind("cn=" + groupName + ",ou=People,dc=asiainfo,dc=com", null, matchAttrs);
} catch (NamingException e) {
e.printStackTrace();
}finally {
this.closeLdapContext(context);
}
}
/**
* Delete LDAP user
* @param userName
*/
public void deleteLDAPUser(String userName){
LdapContext context = this.initLDAPContext();
try {
context.unbind(userName);
} catch (NamingException e) {
e.printStackTrace();
}finally {
this.closeLdapContext(context);
}
}
/**
* Delete LDAP user group
* @param groupName
*/
public void deleteLDAPUserGroup(String groupName){
this.deleteLDAPUser(groupName);
}
/**
* Modify LDAP user attribute with new value
* @param userName
* @param attributeName
* @param attributeNewValue
*/
public void updateLDAPUserAttribute(String userName, String attributeName, String attributeNewValue){
LdapContext context = this.initLDAPContext();
ModificationItem[] mods = new ModificationItem[1];
mods[0] = new ModificationItem(context.REPLACE_ATTRIBUTE, new BasicAttribute(attributeName, attributeNewValue));
try{
context.modifyAttributes(userName, mods);
}catch (NamingException e) {
e.printStackTrace();
}finally {
this.closeLdapContext(context);
}
}
/**
* Search LDAP users by user dn and filter
* @param userName
* @param filter
* @return NamingEnumeration<SearchResult>
*/
public NamingEnumeration<SearchResult> searchLDAPUser(String userName, String filter){
NamingEnumeration<SearchResult> searchResults = null;
LdapContext context = this.initLDAPContext();
SearchControls ctrl = new SearchControls();
ctrl.setSearchScope(SearchControls.SUBTREE_SCOPE);
try {
searchResults = context.search(userName, filter, ctrl);
} catch (NamingException e) {
e.printStackTrace();
}finally {
this.closeLdapContext(context);
}
return searchResults;
}
private LdapContext initLDAPContext(){
LdapContext context = null;
Properties mEnv = new Properties();
mEnv.put(LdapContext.AUTHORITATIVE, "true");
mEnv.put(LdapContext.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
mEnv.put(LdapContext.PROVIDER_URL, this.ldapUrl);
mEnv.put(LdapContext.SECURITY_AUTHENTICATION, "simple");
mEnv.put(LdapContext.SECURITY_PRINCIPAL, this.ldapUserDN);
mEnv.put(LdapContext.SECURITY_CREDENTIALS, this.ldapPwd);
try {
context = new InitialLdapContext(mEnv,null);
} catch (NamingException e) {
e.printStackTrace();
}
return context;
}
private void closeLdapContext(LdapContext context){
try {
context.close();
} catch (NamingException e) {
e.printStackTrace();
}
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

项目是根据LandGrey/SpringBootVulExploit清单编写,目的hvv期间快速利用漏洞、降低漏洞利用门槛。 源仓库地址: https://github.com/0x727/SpringBootExploit.git
取消

发行版

暂无发行版

贡献者

全部

语言

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/bravingboy/SpringBootExploit.git
git@gitee.com:bravingboy/SpringBootExploit.git
bravingboy
SpringBootExploit
SpringBootExploit
main
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /