19-09-21/22学习总结

周末比较闲鱼 就两天并做一天啦

一、SQL注入一般流程

:找到一篇文章写的很好 关于深入了解SQL注入绕过waf和过滤机制

1.寻找注入点

  1. 目标搜集
    使用搜索引擎
    A.无特定目标时:用inurl:.php?id=其中php可换成jsp/aspx等
    B.有特定目标时:用inurl:.php?id=site:目标域名
    使用工具爬取
    A.如spider(目前还不会用

  2. 注入识别
    A.手工注入
    ' //单引号
    and 1 = 1 或 and '1' = '1 //没有任何变化
    and 1 = 2 或 and '1' = '2 //返回不一致了
    B.工具注入
    sqlmap (sqlmap可与burpsuit结合,已在burpsuit中载入相关扩展包)如
    sqlmap --level 4 //级别高时可浏览header中的参数
    sqlmap -r filename //数据包

  3. 流程
    A.信息收集(数据库类型、版本等)
    B.获取数据
    C.提权(执行命令、读文件、写入shell)

二、LC上的一道题

将给定的单链表L: L 0→L 1→…→L n-1→L n, 重新排序为: L 0→L n →L 1→L n-1→L 2→L n-2→…
要求使用原地算法,并且不改变节点的值 例如: 对于给定的单链表{1,2,3,4},将其重新排序为{1,4,2,3}.

我的暴力算法:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    void reorderList(ListNode *head) {
        if(head==nullptr||head->next==nullptr||head->next->next==nullptr)
            return ;
        ListNode *p,*m,*q;
        p = head;
        m = p;
        q = p;
        while(p->next!=m && p->next!=nullptr){
            m = head->next;
            while(m->next->next!=nullptr){
                m = m->next;       
            } 
            q = m->next;
            m->next = NULL;    
            q->next = p->next;
            p->next = q;   
            p = q->next;
            }
        return ;
        }
};

就是把最后一个节点往插呗 简单粗暴
终止条件需要判断一下。优点是代码短,缺点是复杂度有点不妥
第一次做题一开始没考虑空链表的情况 以后注意(这让我回想到为什么我蓝桥杯明明自己运行的很好但是最后竟然没得奖)
看到很多大佬用三步走的办法 明天学习一下
感觉用队列和栈也可以做 明天也试试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值