挖掘SQL注入经验分享+基础原理 SQL注入常常出现在于数据库进行交互的地方 http请求中的user-agent,client-ip,x-forward-for等可能会被程序存储到数据库中的地方。...GET /test.php HTTP/1.1 Host: 127.0.0.1 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko..., 字符型注入与其大同小异 当输入是字符串时,其注入需要单引号闭合,字符型注入最关键的是怎么去闭合SQL语句以及去注释多余的代码,当查询内容为字符串时,SQL语句如下 select*from table...where username=’admin‘ 当字符型注入 and1=1为什么不能去正常查询,看如下语句 select * from table where username='admin and 1...=1' 因为admin and1=1 会被数据库当做查询的字符串如果想要注入就要考虑字符串的闭合问题, select * from table where username='admin 'and 1=
"]) 这是作为后门用post提交一个字符串Syc,刚好题目名字是Knife,这就不然而然的想起来了-菜刀。...,思路是对的,现在我来细说:为什么?...知识点:1.1 PHP的字符串解析特性:这是别人对PHP字符串解析漏洞的理解,我们知道PHP将查询字符串(在URL或正文中)转换为内部_GET或的关联数组_POST。 例如:/?...foo=bar变成Array([foo] => “bar”) 值得注意的是,查询字符串在解析的过程中会将某些字符删除或用下划线代替。 例如,/?...%20news[id%00=42"+AND+1=0– 上述PHP语句的参数%20news[id%00的值将存储到$_GET[“news_id”]中 HP需要将所有参数转换为有效的变量名,因此在解析查询字符串时
error.source.id 字符串 引发错误的节点的ID。 error.source.type 字符串 引发错误的节点的类型。...error.source.name 字符串 引发错误的节点的名称。...结合原视频的例子,对于天气服务,有创建环境变量逻辑,有查询逻辑,其中查询天气还分为查询当前天气、连续 5 天天气、查询国家信息,我们可以在 UI 上讲每块逻辑分组,并利用 comment 组件标记好注释...当你把 Method 设置为 post,连接到 http response 就创建了后端接口;当设置为 get 请求,并连接 template 写上 html 模版,并连接到 http response...split 对应代码的 split,将字符串变为数组。 join 对应代码的 join,一般与 split 配合使用,方便处理字符串。
Trie的核心思想是空间换时间,利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。 所以在请求阶段查找的时候,也同样是根据url path去查找对应的handler。...这部分其实更多的是netty和http相关的通用逻辑,这里不做详细介绍了。...HTTP server的分发逻辑最终会调用到RestController类的dispatchRequest方法 RestController.java ?...在NodeClient中会根据传入的Action参数从actions获取在ActionModule中注册的TransportAction,并执行其execute()方法 TransportAction后面的的逻辑...,就是具体的ES查询逻辑处理了。
推荐几个实用的文档,使用过程中可以查询使用。...还需要配置文件模版,提供字符串模版,如下图: 代码如下: print(server.create_job(name='android_dev_temp', config_xml=Jenkins_TEMP...代码如下: print(server.get_job_info(name='android_dev_parameters')) 查询出来的信息,包含了描述、任务状态、构建节点等信息。...我们会把接口自动化测试、性能压测脚本配置在jenkins服务器上,后端服务的业务逻辑中会动态创建job、构建job、查看构建日志等。...python-jenkins的出现极大了提高的操作jenkins的便捷性,希望大家工作中能用到~
不要求会写,但是一定能看懂,而且要看懂逻辑,知道哪些功能点会用什么方式去写,可能会出现什么类型漏洞,方便挖掘常规类型漏洞,更方便挖掘逻辑漏洞 二 、渗透技巧篇 1.会用常见的渗透工具如sqlmap, awvs...其他的我们在后续的文章中会继续详细学习。...逻辑非、布尔值用On表示打开,用Off表示关闭。...> 2.assert() 与eval()类似,字符串被 assert()当做 PHP 代码来执行,如: 示例代码: 10.动态函数 PHP函数直接由字符串拼接 代码示例: GET['a']($GET['b']); ?>
读取 allCookies = document.cookie 我们通过document.cookie就可以获取当前域名及其子域名下的所有cookie,它是以"; "(分号+空格)作为分隔符的键值对形式字符串...二、写入 document.cookie = newCookie 这里值得注意的是,newCookie也是一个字符串,它包含1+5个参数,分别是 1、由键名和键值组成的字符串,必填 “${name}=$...当访问http://localhost/boyue/*时,请求头中会包含cookie1,而不会包含cookie2。...当访问http://localhost/boyue/tongxue/*时,请求头中会包含上面两个。 即,在访问子路径时,会包含其父路径的Cookie,而在访问父路径时,不包含子路径的Cookie。...仔细想想这点其实也挺符合逻辑的,要不然这个参数也就没意义了。 3、domain ;domain=*domain* 设置域。
只有发送post请求时才会设置请求体,设置请求体时需要注意请求体的格式,一般大家使用jquery发送post请求时会自动将数据转换成查询字符串格式,也就是name=zs&age=18,这样格式的数据。...举个简单的例子,请求体中的数据格式是查询字符串,服务器端只支持json格式解析,这就会出现错误。...get请求不需要设置请求体,post如果传递数据,则将指定格式的数据传入send方法中,为什么是指定数据呢,如果你前面设置请求头设置的是Content-Type:application/x-www-form-urlencoded...,那么数据就是查询字符串格式的,如果是Content-Type:application/json那么传入的数据就是json格式的。...我设置了请求头,并在send中传递了数据,数据格式与请求头一致,都是查询字符串格式。 看一下network: ? 如果将请求头改成json格式呢?那么send中的数据格式也要改成json。
全称是超文本传输协议,为什么是超文本传输协议,当我们向浏览器发送一个HTTP请求后,HTTP响应的不仅仅是文本文件也可以是HTML,CSS,JS文件,也可以是二进制的图片音频文件。...例如 http 协议默认使⽤ 80 端⼝, https 协议默认使⽤ 443 端⼝. 层次文件夹:当找到这个服务器后,对应的资源文件夹目录。 查询字符串:帮助我们定位具体返回那部分内容。...post方法和get方法区别: get一般用于获取数据如查询信息图片等post一般用于提交数据如登录。...get方法的body一般为空,需要传递的数据通过query string(查询字符串),post的query string一般为空,需要传递数据通过body来传递。...get对于登录这类请求可能没有post安全,因为是通过查询字符串传递的,就可能造成密码的泄露,但其实到底会不会产生安全问题,还是取决于前端对于这些敏感数据是否加密。
比如,用arronlong HTTP函数库从WebService取XML字符串,使用Dom4J函数库将XML字符串解析为Document类型,使用Dom4J内置的XPath语法进行条件查询: String...JsonPath/XPath对条件查询的支持比较完整,包括关系运算符,如大于、小于等于;逻辑运算符,如与、或、非;字符串正则表达式,如~ /.?business.?.../i;字符串函数,如模糊匹配contains。...,包括关系运算符、逻辑运算符、正则表达式和字符串函数,如模糊匹配like。...,判断是否全为数字:isdigit(“12345”) //返回true 取子串前面的字符串:substr@l(“abCDcdef”,“cd”) //返回abCD 按竖线拆成字符串数组
views视图函数属于MTV中逻辑处理的部分 视图函数包含着两个对象,HttpRequest对象和HttpResponse对象 一.HttpRequest对象 HttpRequest对象在Django中会默认传到...views函数中作为第一个参数 HttpRequest的属性: 属性 说明 path 请求页面的全路径,不包括域名 method 请求中使用的HTTP方法 GET 包含所有HTTP GET参数的类字典对象...POST 包含所有HTTP POST参数的类字典对象 REQUEST 该属性是POST和GET属性的集合体,先查找POST属性,然后再查找GET属性 COOKIES 包含所有cookies的标准Python...FILES中的每个value 同时也是一个标准Python字典对象,包含下面三个Keys: filename: 上传文件名,用Python字符串表示 content-type: 上传文件的Content.../POST的键值,先取POST,后取GET has_key() 检查request.GET or request.POST中是否包含参数指定的Key get_full_path() 返回包含查询字符串的请求路径
= 或 或 or 或表达式或函数(左侧) like 语句 % 开头 字符串未加’’ 索引字段区分度过低,如性别 未匹配最左前缀 (一张嘴就知道老面试题了) 为什么这些做法会导致失效,成熟的 MySQL...隐式转换 隐式类型转换和隐式字符编码转换也会导致这个问题。 隐式类型转换对于 JOOQ 这种框架来说一般倒不会出现。 隐式字符编码转换在连表查询时倒可能出现,即连表字段的类型相同但字符编码不同。...1.1.3 性别字段为什么不要加索引 为什么索引区分度低的字段不要加索引。盲猜效率低,效率的确低,有时甚至会等于没加。 对于非聚簇索引,是要回表的。...如果是多条件查询,可以建立联合索引利用该特性优化。 覆盖索引:也是联合索引,查询需要的信息在索引里已经包含了,就不会再回表了。 前缀索引:对于字符串,可以只在前 N 位添加索引,避免不必要的开支。...2.4.1 全文检索 在 MySQL 中字符串类型根据关键字模糊查询就是一场灾难,对 ES 来说却是小菜一碟。具体场景,比如消息表对消息内容的模糊查询,即聊天记录查询。
为什么在 _all 字段查询日期返回所有推文,而在 date 字段只查询年份却没有返回结果?为什么我们在 _all 字段和 date 字段的查询结果有差别?...你只能搜索在索引中出现的词条,所以索引文本和查询字符串必须标准化为相同的格式。...然而,为了充分利用查询的强大功能,你应该使用 请求体 search API, 之所以称之为请求体查询(Full-Body Search),因为大部分参数是通过 Http 请求体而非查询字符串来传递的。...Query-string 搜索 也支持自定义排序,可以在查询字符串中使用 sort 参数: GET /_search?...字段中出现过 5 次要比只出现过 1 次的相关性高。 反向文档频率:每个检索词在索引中出现的频率?频率越高,相关性越低。检索词出现在多数文档中会比出现在少数文档中的权重更低。
应用场景 字符串类型在工作中使用广泛,主要用于缓存数据,提高查询性能。比如存储登录用户信息、电商中存储商品信息、可以做计数器(想知道什么时候封锁一个IP地址(访问超过几次))等等。...查询 查询单条(GET、GETSET) # 存在则返回,不存在返回nil # GET key > GET test6 "chendasheng" # 获取(旧)值并设置新值 # GETSET key...1 BITCOUNT是以字符为(Byte)单位,一个字符有8位bit 查找指定范围出现的第一个0或1(BITPOS) 查找指定范围出现的第一个0或1的bit位置 # bit查找的值 0 或者...…],对一个或多个key求逻辑异或,并将结果保存到destkey BITOP NOT destkey key ,对给定key求逻辑非,并将结果保存到destkey # 对每bit进行运算 # BITOP...dest "``" > bitop or dest key1 key2 (integer) 2 > get dest "cc" 引用 Redis 爱好者-字符串
接收用户传递参数的方式: 使用path的方式(将参数嵌入到路径中) 使用查询字符串的形式 (也就是通过?...key=value的形式传递的,只能通过request.args.get的方式来获取) 如果页面想要做SEO优化的话,那么推荐使用path的形式,反之就是查询字符串的形式 练习 from flask import...('wd') #获取浏览器传递参数 return '通过查询字符串的方式传递的参数是,%s'%wd #请求http://127.0.0.1:8080/d/?...name=sss 关于响应 视图函数的返回值会被自动转换成一个响应对象,flask的转换逻辑如下: 如果返回的是一个合法的响应对象,则直接返回 如果返回的是一个字符串,那么flask会重新创建一个werkzeug.wrappers.Response...: @classmethod def force_type(cls, response, environ=None): ''' 这个方法只有视图函数返回非字符串
参数传输过程中会先对 XML 报文进行 DEFLATE 压缩,再使用 Base64 编码,最后通过 URL 编码嵌入到 URL 查询字符串中。...SAML 协议支持多种传输绑定(Binding),其中 HTTP-Redirect 绑定利用浏览器重定向与 URL 查询参数来传递 SAML 请求,实现了对 GET 方法的兼容。...,用于在请求与响应之间维持会话状态,其长度应限制在 80 字节以内; 指定 SigAlg 参数来告知对查询字符串签名时所用的算法,例如 http://www.w3.org/2001/04/xmldsig-more...压缩可大幅减少查询字符串长度,编码后可确保二进制数据以 ASCII 字符形式传输。使用 URL 编码后,它会变成类似 fZJRb8IgFIX... 这样的长字符串。...URL 编码:将 Base64 编码中可能出现的 +, /, = 等字符转换为 %xx 形式,以满足 URL 查询参数规范。
> stripos() stripos()函数:查找字符串在另一字符串中第一次出现的位置(不区分大小写) strpos() - 查找字符串在另一字符串中第一次出现的位置(区分大小写) strrpos(...) - 查找字符串在另一字符串中最后一次出现的位置(区分大小写) stripos()函数返回字符串在另一字符串中第一次出现的位置,如果没有找到字符串则返回 FALSE。...2、fopen /file_get_contents 在请求HTTP时,使用的是http_fopen_wrapper,不会keeplive。而curl却可以。...而fopen / file_get_contents只能使用get方式获取数据。 eregi() eregi()函数:在一个字符串中搜索指定的模式的字符串,搜索不区分大小写。...parse_str()变量覆盖:parse_str()函数把查询字符串解析到变量中,如果没有array参数,则由该函数设置的变量将覆盖已有的同名变量。
数据库索引 数据库索引,在日常工作中会经常接触到,比如某一个 SQL 查询比较慢,分析原因后,经常会说 “给某个字段加个索引”,索引又是如何工作的?...索引的出现是为了提高数据查询的效率,和书的目录是一样的。...也就是说,基于非主键索引的查询要多扫描一棵索引树,因此我们需要尽量用主键查询。...为什么非主键索引结构叶子节点存储的是主键值 主键索引和非主键索引维护各自的B+树结构,当插入的数据的时候,由于数据只有一份,通过非主键索引获取到主键值,然后再去主键索引的B+树数据结构中找到对应的行数据...索引的数据类型是整型,一方面整型占有的磁盘空间或内存空间相比字符串更少,另一方面整型比较比字符串比较更快速,字符串比较是先转换为ASCII码,然后再比较的。
Repository居于业务层和数据层之间,将两者隔离开来,在它的内部封装了数据查询和存储的逻辑。 @Mapper 与@Repository功能一样,且都是注解在DAO上。 ...@RestController 是@Controller和@ResponseBody的结合体,只能注解类,return返回的值将被转换成json,字符串除外,直接写入HTTP相应体返回到页面中。...// 变量名和查询字符参数一样 // GET /users?....} // 变量名和查询字符参数不一样 // GET /users?...@RequestBody 一般用来处理非Content-Type: application/x-www-form-urlencoded编码格式的数据,在GET请求中没有请求体所以一般不适用,在post
在浏览器中正常访问目标 Web 应用,找到需要测试的特定请求,例如获取 “/ 我的账户” 信息的 GET 请求,该请求在 Burp Suite 的 “Proxy” 模块 “Intercept” 选项卡中会被捕获显示...,形如GET /我的账户 HTTP/2 。...此时,将光标定位到 “/ 我的账户” 路径的末尾,添加自定义的字符串(如 “abc”),并选中该字符串,点击 “Add §” 按钮(或直接点击 “Add new position”),在选中的字符串两侧会出现...“§§” 符号,这表示该位置已被设置为可替换的测试点,最终请求格式变为GET /我的账户§§abc HTTP/2 。...在 “Payload Options” 部分,粘贴包含特殊字符的列表,这些特殊字符包括但不限于;、?、#、&等可能影响服务器处理逻辑的字符。