substr

Sqli-Labs less 5-6

大憨熊 提交于 2020-01-20 00:31:22
less 5 前置基础知识: 1. left()函数: left(database(),1)=‘s’ left(a,b)从左侧截取a的前b位,正确则返回1,错误则返回0 例如上例中就是先查询database()数据库,从左面看他第一个字母是否是s,如果是则返回1,错误则返回0; 2. regexp函数:select user() regexp ‘r’ user()的结果是root,regexp为匹配root的正则表达式 例如上例中就是把查询到的user用户也就是root和r从左至右进行比较,相同是1,不同是0. 3. like函数: select user() like ‘ro%’ 匹配与regexp相似。 与上个函数类似,唯一不同就是加一个% 4. substr(a,b,c) select substr() XXXX substr(a,b,c)从位置b开始,截取a字符串c位长度 例 如select substr((select database()),1,1)='s’; 匹配第一个字符是否是 s 5. ascii() 将某个字符串转化为ascii值 进入正题: 首先用?id=1试探:(这关依旧是在源码处加入了输出sql语句的代码) 然后输入错误的?id=1‘观察:显示报错,所以一定存在注入漏洞。 再输入:http://192.168.5.100/sqli-labs/Less-5/

swfit 过滤手机号、座机号

北城以北 提交于 2020-01-19 15:01:23
今天要实现物流信息里面电话可以点击拨打。然而服务端用的快递100三方返回的内容,只有物流信息和时间,作为前端,我们改怎么知道一条物流信息里面有几个手机号,几个座机号。我是没辙了。用富文本实现可以点击拨打电话很简单,但是怎么样鞥呢过滤出来手机号和座机号呢,当然用正则过滤喽 奉上代码 //手机号 fileprivate let regexMobilePhoneStr = "\\d{11}" //固话 fileprivate let regexPhoneStr = "\\d{3,4}[- ]?\\d{7,8}" //用个for循环,写死3次,应该一条物流信息里面不会超过3个电话吧 //为什么这么写,我也没办法,谁让服务端不告诉我有几个手机号,或者把手机号单独返回给我们拼接更方便 for _ in 0...2 { var number = (contentLabelText as NSString).getStrWithRegex(regexMobilePhoneStr) if number.count == 0 { number = (contentLabelText as NSString).getStrWithRegex(regexPhoneStr) } let range = (contentLabelText as NSString).range(of: number) /

Make sure that string follows the required format

 ̄綄美尐妖づ 提交于 2020-01-17 06:08:10
问题 I am attempting to check if a string follows a certain format by checking that: item[]= is repeated four times item[]= is followed by a number and & symbol (e.g item[]=2& ), except the last number doesn't have & after it The numbers after item[]= consist of only either 1-4 and can be in any order, but not repeated Here are a few examples of how the string would look (as you can see, the order of the number changes) - note that there will only be one string at a time! 1) $list = 'item[]=1&item

Mysql查漏补缺笔记

雨燕双飞 提交于 2020-01-17 05:17:03
目录 查漏补缺笔记2019/05/19 文件格式后缀 丢失修改,脏读,不可重复读 超键,候选键,主键 构S(Stmcture)/完整性I(Integrity)/数据操纵M(Malippulation) 关系范式 系统设计 数据库语言 两段协议 SQL联表查询,函数substr,right 查漏补缺笔记2019/05/19 文件格式后缀 数据库文件的扩展名为.DBC 数据表文件的扩展名为 .DBF 表单文件的扩展名为 .SCX 项目文件的扩展名为 .PJX 丢失修改,脏读,不可重复读 事务之间的对数据的并发操作会带来三种问题:丢失修改,脏读,不可重复读。 丢失修改:一个事务读取一个数据时,另外一个事务也访问该同一数据。那么,在第一个事务中修改了这个数据后,第二个事务也修改了这个数据。这样第一个事务内的修改结果就被丢失,因此称为丢失修改。 脏读:当一个事务正在访问数据并且对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,根据脏数据的操作可能是不正确的。 不可重复读:一个事务内多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,这就发生了在一个事务内两次读到的数据是不一样的情况

身份证的秘密(二)

血红的双手。 提交于 2020-01-16 18:44:19
class GetInfoByIDCard{ /**根据身份证号,自动返回对应的星座 * @param $cid * @return string */ public function getStarSign($cid){ if (!$this->isIdCard($cid)) return ''; $bir = substr($cid, 10, 4); $month = (int)substr($bir, 0, 2); $day = (int)substr($bir, 2); $strValue = ''; if (($month == 1 && $day <= 21) || ($month == 2 && $day <= 19)) { $strValue = "水瓶座"; } else if (($month == 2 && $day > 20) || ($month == 3 && $day <= 20)) { $strValue = "双鱼座"; } else if (($month == 3 && $day > 20) || ($month == 4 && $day <= 20)) { $strValue = "白羊座"; } else if (($month == 4 && $day > 20) || ($month == 5 && $day <= 21)) {

PHP获取路径后缀名的N种方法

冷暖自知 提交于 2020-01-14 00:02:55
已知一条url,想要获取到这条路径的后缀。 1 <?php 2 3 $url="www.test.com/index.php"; 4 echo "URL:".$url."<br>"; 5 6 //方法1 7 print_r(pathinfo($url,PATHINFO_EXTENSION )); 8 9 //方法2 10 $info1=pathinfo($url); 11 echo $info1['extension']; 12 13 //方法3 14 $info2=explode(".",$url); 15 echo end($info2); 16 17 //方法4 18 $info3=substr(strrchr($url, "."), 1); 19 echo $info3; 20 21 //方法5 22 $info4=substr($url, strrpos($url, '.')+1); 23 echo $info4; 24 25 ?> 26 所用到得函数总结:   1、pathinfo(路径,参数)     参数非必须,填之后可以返回特定部分,否则返回信息数组(见法2)。   2、explode(分隔符,字符串)     用分隔符分割字符串,返回被分割的部分,以数组形式。   3、substr(字符串,开始位置,长度)     切割字符串,长度非必须,不填的话

mysql语句

 ̄綄美尐妖づ 提交于 2020-01-13 13:49:30
mysql数据类型,varchar int char boolean text long double float 一.查询 !查询语句语法:select 列名 from 表名 !条件查询:关键字 where 开始,后边的就是查询条件 !having筛选 !like 模糊查询 like '%值%', and 并且 ,!= 不等于 ,<> 不等于 , is not null 不能为空 , is null 等于空 用法 between and 包含符合两者之间的数据 or或者(in与or作用相似) or 适合用于 单条数据判断 in 用于多条 !联表查询:左连接 left join,右连接 right join,inner join 内连接 !分组 group by 数据出现重复,单个字段重复数据合并成一条 count() 字段内相同数据的数量 多个字段的时候需要使用 distinct:数据不同值的数量 !排序 order by desc 从多到少 asc 从少到多 百分比查询语法 select CONVERT(decimal(18, 1),除数 * 1.0 / 被除数) * 100 a from 表名 创建 create table 表 () 添加 insert into 表 (字段) values (值) 修改 update 表 set 字段='新值' where 字段='条件'

MySQL函数大全 及用法示例

吃可爱长大的小学妹 提交于 2020-01-13 12:11:23
MySQL函数大全 及用法示例 字符串函数 ASCII(str)  返回字符串str的第一个字符的ASCII值(str是空串时返回0) mysql> select ASCII('2');   -> 50 mysql> select ASCII(2);   -> 50 mysql> select ASCII('dete');   -> 100 ORD(str)  如果字符串str句首是单字节返回与ASCII()函数返回的相同值。  如果是一个多字节字符,以格式返回((first byte ASCII code) *256+(second byte ASCII code))[*256+third byte ASCII code...] mysql> select ORD('2');   -> 50 CONV(N,from_base,to_base)  对数字N进制转换,并转换为字串返回(任何参数为NULL时返回 NULL,进制范围为2-36进制,当to_base是负数时N作为有符号数否则 作无符号数,CONV以64位点精度工作) mysql> select CONV("a",16,2);   -> '1010' mysql> select CONV("6E",18,8);   -> '172' mysql> select CONV(-17,10,-18);   -> '-H'

PHP 开发API接口签名验证

老子叫甜甜 提交于 2020-01-13 02:37:10
密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。 解释来源: http://baike.so.com/doc/6783134-6999702.html 参考: http://www.docin.com/p-572103142.html 上一篇 : PHP 开发API接口签名验证 中我们说到了sign签名,sign其实是防篡改的一种方法,它将约定好的排序、位置、数组进行密钥加密生成sign对比。 是的,sign签名我们是能看到数据的,只是可以防止数据的篡改。而AES可以加密解密数据 AES通过约定好的密钥进行加密,通过约定好的密钥解密。 ECB加密模式(不推荐): 容易被攻击 <?php /* * 加密 */ function encrypt($input, $key) { $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $input = pkcs5_pad($input, $size); $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, '

mysql – 在WHERE子句中使用substr的SELECT语句

随声附和 提交于 2020-01-11 18:45:39
http://www.voidcn.com/article/p-gmvusbbi-bub.html 我这里有三个字段的样本表. TableA FieldA FieldB FieldC ====================================== 123XYZ456 XYZ John 124NNN333 NNN Jenny 232XPT124 XPT Jade 456XXX345 XXX James FieldA的固定长度为9.我没有设计这个表,有些应用程序已经在使用它. 我想选择具有针对FieldA的条件的FieldB和FieldC. 使用这个sql语句: SELECT FieldB, FieldC FROM TableA WHERE FieldA LIKE Concat(@paramA, '%', @paramB) 我无法达到我想要的结果.当我尝试使用paramA值12和paramB值”进行搜索时,我得到2个结果: FieldA FieldB FieldC ====================================== 123XXX456 XXX John 124XXX333 XXX Jenny 因为很明显它与12%匹配,这不是我想要的.我希望params应该匹配字符串的正确索引. 如果我搜索paramA =’12’和paramB =