• 【笔记】如何查看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';
  • 相关阅读:
    中国大陆地区用户请特别注意:请勿存放违反当地法律法规文件
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
  • 原文地址:https://www.cnblogs.com/liuyimin/p/7647726.html
Copyright © 2020-2023  润新知