nextdoor 发表于 2014-7-18 13:50:23

对某bbs论坛的简单审计

本帖最后由 nextdoor 于 2014-7-18 13:50 编辑

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

现在jsp的网站操作数据库为了安全起见都是用户的是预编译指令,把sql注入拒之门外。
虽然sql注入不太好找,但是只要有拼接语句的地方,就存在有sql注入。
下面看一段搜索帖子的代码SearchAction.javapublic 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");
        }
下面是分析过程







下面利用union联合查询




星南 发表于 2014-7-18 14:55:41

前排支持,看到代码就头疼。。。

广岛秋泽 发表于 2014-7-18 16:29:51

谢谢分享~                  

玉林嘎 发表于 2014-7-19 02:56:16

最近 一直在研究php代码审计
什么时候 能挖到一次啊。

zy516668272 发表于 2014-7-19 12:23:32

2863482451 发表于 2014-7-20 19:08:19

不懂jsp,目测看不懂啊

寂寞的我 发表于 2014-7-20 22:23:50

谢谢分享~    看不懂啊

兮朵丶 发表于 2014-7-22 12:25:11

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

nextdoor 发表于 2014-7-22 19:24:01

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

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

blxzboy 发表于 2014-7-23 14:06:58

学习下了。。。。
页: [1] 2
查看完整版本: 对某bbs论坛的简单审计