【笔记】如何查看HTTP请求头&&【实验吧】天下武功唯快不破&&简单sql注入2&&简单sql注入

  1. 打开Chrome浏览器,点击右上角“三”按钮。

    点击工具-----再点击开发者工具

     
  2. 找到Network选项框。以百度经验页面为例,点击任务选框来查看网络请求流

     
  3. 在Network框内会有所有的请求流

    4.点击你所需要的请求流,查看头部信息

     

     

     

【实验吧】

查看源码:

找到提交的key进行Post提交,查看请求头;

 

于是把flag进行post提交:

补充:

Requests 模块: 
>>> import requests 然后,尝试获取某个网页。本例子中,我们来获取 Github 的公共时间线: >>> r = requests.get('https://github.com/timeline.json') 现在,我们有一个名为 r 的 Response 对象。我们可以从这个对象中获取所有我们想要的信息。 Requests 简便的 API 意味着所有 HTTP 请求类型都是显而易见的。例如,你可以这样发送一个 HTTP POST 请求: >>> r = requests.post("http://httpbin.org/post")
base64模块:
str2 = base64.b64encode(str1)  编码
str3 = base64.b64decode(str2) 解码

于是解题脚本:

import requests
import base64

url = 'http://ctf5.shiyanbar.com/web/10/10.php'

rs = requests.get(url).headers['FLAG']

v = base64.b64decode(rs)

print requests.post(url=url,data={'key':v.split(':')[1]}).content
//向url发送一个post方法的http报文,data是post的数据段,v是一个字符串,以":"分割成list

 

 

补充:

python request模块:
resp.text返回的是Unicode型的数据。

resp.content返回的是bytes型也就是二进制的数据。

 http://blog.h5min.cn/sinat_21923549/article/details/62065380

http://blog.csdn.net/qq_34841823/article/details/54290089

补充:

tip1:在Mysql中构造sql注入时,where后面的单引号完全可以直接使用''=''来闭合,表示永真,而不一定需要'1'='1'这种格式。

tip 2:当关键字被过滤掉的时候,可以使用/**/或者/*!*/括起来的方式来绕过检测过滤

tip 3:常用来绕过WAF或过滤函数以代替空格的字符有这些:%0a %0d %09 %0b /**/ /*!*/ /*!50000*/以及()

tip 4:在get型注入中,如果or被过滤,则可以使用|代替,如 ...where search=''|'1';

 

posted @ 2017-10-10 20:43  S_s_s  阅读(502)  评论(0编辑  收藏