查看: 20817|回复: 11

对某bbs论坛的简单审计

[复制链接]
发表于 2014-7-18 13:50:23 | 显示全部楼层 |阅读模式
本帖最后由 nextdoor 于 2014-7-18 13:50 编辑

一个简单的jsp的BBS论坛网站

现在jsp的网站操作数据库为了安全起见都是用户的是预编译指令,把sql注入拒之门外。
虽然sql注入不太好找,但是只要有拼接语句的地方,就存在有sql注入。
下面看一段搜索帖子的代码SearchAction.java
[HTML] 纯文本查看 复制代码
public ActionForward execute(ActionMapping mapping, ActionForm form, httpervletRequest 

request, httpervletResponse response) throws Exception {
		super.setParams(request);		
		httpession session=request.getSession();
		session.setAttribute("mainPage","/pages/show/bbs/searchListShow.jsp");		
		
		SearchForm searchform=(SearchForm)form;
		String subsql=searchform.getSubsql();
		String sqlvalue=searchform.getSqlvalue();
		String searchType=searchform.getSearchType();
		
		String validate=request.getParameter("validate");
		if(validate==null||validate.equals("")||!validate.equals("yes")){		

	        //通过“返回”超链接触发的搜索操作
			subsql=(String)session.getAttribute("subsql");
			sqlvalue=(String)session.getAttribute("sqlvalue");
			sqlvalue=(String)session.getAttribute("sqlvalue");
			searchform.setSubsql(subsql);
			searchform.setSqlvalue(sqlvalue);
			searchform.setSearchType(searchType);
		}
		else{										

			//通过提交表单触发的“搜索操作”
			session.setAttribute("subsql",subsql);
			sqlvalue=Change.HTMLChange(searchform.getSqlvalue());
			session.setAttribute("sqlvalue",sqlvalue);
			session.setAttribute("searchType",searchType);
		}
		
		String opname="";
		String param="";
		if(searchType.equals("all")){
			opname=" = ";
			param=sqlvalue;			
		}
		else{
			opname=" like ";
			param="%"+sqlvalue+"%";
		}
		
		int perR=5;
		String currentP=request.getParameter("showpage");
		if(currentP==null||currentP.equals(""))
			currentP=(String)session.getAttribute("currentPsh");
		else
			session.setAttribute("currentPsh",currentP);
		String gowhich="user/search.do";	
		
		OpDB myOp=new OpDB();
		myOp.setMark(true);								

//进行分页显示
		myOp.setPageInfo(perR, currentP, gowhich);		
//设置进行分页显示需要的信息		
		
		String sql="select * from tb_bbs where "+subsql+opname+"?"; //这句sql代码是拼接的,存在sql注入
		Object[] params={param};		

		List searchlist=myOp.OpBbsListShow(sql,params);
		CreatePage page=myOp.getPage();
		
		session.setAttribute("searchlist",searchlist);
		session.setAttribute("page",page);
		
		return mapping.findForward("success");
	}

下面是分析过程
bbs1.PNG

bbs2.PNG

bbs3.PNG

bbs5.PNG
下面利用union联合查询
bbs6.PNG

bbs7.PNG

bbs8.PNG
bbs7.PNG

评分

参与人数 2i币 +20 贡献 +4 收起 理由
KingSKY + 10 + 2
90_ + 10 + 2 支持原创

查看全部评分

回复

使用道具 举报

发表于 2014-7-18 14:55:41 | 显示全部楼层
前排支持,看到代码就头疼。。。
回复 支持 反对

使用道具 举报

发表于 2014-7-18 16:29:51 | 显示全部楼层
谢谢分享~                  
回复 支持 反对

使用道具 举报

发表于 2014-7-19 02:56:16 | 显示全部楼层
最近 一直在研究php代码审计
什么时候 能挖到一次啊。
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2014-7-19 12:23:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2014-7-20 19:08:19 | 显示全部楼层
不懂jsp,目测看不懂啊
回复 支持 反对

使用道具 举报

发表于 2014-7-20 22:23:50 | 显示全部楼层
谢谢分享~    看不懂啊
回复 支持 反对

使用道具 举报

发表于 2014-7-22 12:25:11 | 显示全部楼层
楼主,你啥时候回村阿? 你妈又让我上网联系你,最近在工地上班怎么样了。 你家苞谷地被水给淹了,你去年给你妈汇的300元钱,家里都赔完了。 在工地现在一天能吃饱吗?家人挂念你的很,操心你的身体,不敢累坏身体了。 今年回来过年不,家里人都可想你,村里人都说你有出息了。到城里闯了。 旁边那户人家,羡慕你的很。村里电视机也坏了,刘婶等你修电视等了半年,天天盼你呢。 大家现在没电视看,除了下地,就是下地了。 你快点回来,提前回来说下,村长说给你个惊喜。 组织全村恭迎你回村呢。 现在村里的小孩子,天天玩泥巴,你实在不行来村帮帮忙。 给孩子上上课,把下一代也带出去发展发展,给村里改革下,这都是后话了。 不说了,我这是抢小朋友的机子。 给你留言的,天不早了,怕走回去都到夜里了。 在工地照顾好自己的身体,常回村看看

点评

我没有离开村子啊,刚刚抢小朋友的机子给你回复的。太不容易了。  详情 回复 发表于 2014-7-22 19:24
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-22 19:24:01 | 显示全部楼层
兮朵丶 发表于 2014-7-22 12:25
楼主,你啥时候回村阿? 你妈又让我上网联系你,最近在工地上班怎么样了。 你家苞谷地被水给淹了,你去年给 ...

我没有离开村子啊,刚刚抢小朋友的机子给你回复的。太不容易了。

点评

哈哈 你也抢啊  详情 回复 发表于 2014-8-7 12:14
回复 支持 反对

使用道具 举报

发表于 2014-7-23 14:06:58 | 显示全部楼层
学习下了。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

旗下站点

邮箱系统

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2025-5-2 18:20 , Processed in 0.104715 second(s), 31 queries , Gzip On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部