自增序列号

xml 代码
  1. //要得到的结果是比如今天是2007年1月1号      
  2. //序列号为070101***其中***为001为开始每次+1依次类推~~~     
  3.  public String getNextSn() {   
  4.         /*   
  5.          * the order SN would be formated as 'YYMMDDxxx'   
  6.          * YY: first two digit of the current year   
  7.          * MM: current month   
  8.          * DD: current day   
  9.          * xxx: sequent increasing number   
  10.          */   
  11.         String sql = "select concat( DATE_FORMAT(current_date(),'%y%m%d'), IFNULL(max(substring(oi.sn,-3)+1),'001') ) "  
  12.             + " from OrderInfo oi "   
  13.             + "where substring(oi.sn,1,6) = DATE_FORMAT(current_date(),'%y%m%d')";   
  14.        
  15.         //return tempList.get(0).toString();   
  16.         List tempList  = getHibernateTemplate().find(sql);   
  17.         if (tempList != null && tempList.size()>0 ){   
  18.             String snlength = tempList.get(0).toString();   
  19.             String snFinal=(String) snlength.subSequence(0, 6);   
  20.             String snFinal2=(String) snlength.substring(6,snlength.length());   
  21.             if(snlength.length()==7)   
  22.             {   
  23.                  snFinalsnFinal=snFinal+"0"+"0"+snFinal2;   
  24.             }   
  25.             if(snlength.length()==8)   
  26.             {   
  27.                 snFinalsnFinal=snFinal+"0"+snFinal2;   
  28.             }   
  29.             if(snlength.length()==9)   
  30.             {   
  31.                  snFinalsnFinal=snFinal+snFinal2;   
  32.             }   
  33.            //String snFinal2=(String) snlength.subSequence(7, snlength.length());   
  34.                
  35.             return snFinal;   
  36.         }   
  37.         else {   
  38.             return null;   
  39.         }   
  40.     }  
### SQLi-Lab 第五关 解法分析 SQLi-Lab 的第五关通常涉及布尔盲注攻击方式。通过构造特定的 SQL 查询语句,可以逐步推断数据库中的数据内容。以下是针对该关卡的具体解法说明: #### 基本原理 在布尔盲注中,攻击者利用条件判断的结果来推测查询返回的内容。例如,在已知表名 `security.users` 和列名的情况下,可以通过逐位猜测用户名或密码的 ASCII 字符值实现信息提取[^1]。 #### 手动测试方法 假设目标 URL 是 `http://example.com/Less-5/?id=1`,可以通过以下方式进行手动注入尝试: 1. 构造一个基于布尔逻辑的查询字符串,用于验证某个字符是否存在。 2. 使用函数如 `ascii()` 和 `substr()` 来逐一获取字段值的每一位字符。 示例请求如下: ```plaintext ?id=1' AND ascii(substr((SELECT username FROM security.users LIMIT 0,1),1,1))>97-- ``` 上述请求的作用是检查第一个用户的用户名的第一个字符是否大于 ASCII 值 97(即字母 'a')。如果页面正常显示,则表示条件成立;反之则不成立。通过不断调整比较值并记录结果,最终可还原完整的用户名或密码。 #### 自动化工具辅助 对于更复杂的场景或者为了提高效率,推荐使用自动化渗透测试工具 Sqlmap 进行扫描和数据分析。执行命令前需确认目标站点支持 GET 请求参数传递,并准备好相应的配置文件或直接指定URL地址[^2]。 以第5关为例,启动Sqlmap时应包含以下选项: ```bash python sqlmap.py -u "http://sqli-labs-php7-master/Less-5/?id=1" --batch -D security -T users --columns ``` 此脚本会自动探测可用漏洞并向用户提供关于选定数据库及其结构的信息摘要。 另外需要注意的是某些特殊情况下可能还需要额外提供闭合符号或者其他上下文依赖型语法片段才能成功完成整个过程[^3]。 ### 注意事项 实际操作过程中应当遵循合法授权范围内的活动准则,未经授权不得对任何真实环境下的网络服务实施此类行为以免触犯法律法规。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值