庚子年腊月十三——腊月十九

本文记录了作者在寒假期间的学习历程,涉及ACM训练、编程语言(C++与Python)、思维题与模拟题、SQL注入的理解、信息探测工具(Nmap)的初步体验,以及对Burp Suite和AWVS等漏洞扫描工具的介绍。作者通过实例展示了SQL注入的不同类型,并探讨了如何利用错误消息提取信息。
摘要由CSDN通过智能技术生成

庚子年腊月十三——腊月十九

安全组——电信2002姜毅

2021.1.24——2021.1.31

1.哔哔叨叨(BBDD)

最开始很想把每天的日报写出来然后粘在一起
前两天搬家没开电脑,就看看书
今天起来补文章……sql,上传……

js中’b’+‘a’+ +‘a’+‘a’=baNaNa是为什么啊?

一个表达式中如果有减号 (-)、乘号 (*) 或 除号 (/) 等运算符时,JS 引擎在计算之前,会试图将表达式的每个分项转化为
Number 类型(使用 Number(x) 做转换)。如果转换失败,表达式将返回 NaN
。如果其中有一个变量是字符串,则会将两边都作为字符串相加。

+'12abc';// NaN
+'123';// 123

现在分析 ‘b’+‘a’+ +‘a’+‘a’

上面的表达式相当于’b’+‘a’+ (+‘a’)+‘a’

因为(+‘a’) 等于 NaN,所以:

‘b’+‘a’+ (+‘a’)+‘a’ = ‘b’+‘a’+ “NaN”+‘a’=‘baNaNa’

2.听一波XUPT_ACM新生寒假训练2021的课

第一周是简介、时间复杂度、思维题、模拟题。
尽量把一秒运算次数控制在10^7之内

思维题

取消列车
兔子繁殖问题如果考虑兔子死了该怎么办?
兔子那么可爱,为什么让那个兔子死呢?

模拟题

好好学英语……

总结:

  • 多学习,多做题,多思考,这堂课不失为假期学习的一个好的开始。
  • 20道题,计划五天,一天四道(后来发现很明显计划赶不上变化)
查成绩

一个是C++的,一个是py的
两个还真不一样
在时间、内存、长度上,符合各个语言的性质
在这里插入图片描述

#include<iostream>
#include<string>
#include<map>  
using namespace std;
 
int main(){
    string option, name;
    int score;
    map<string, int> nameToScore;
    while(cin >> option && option != "end"){
        cin >> name;
        if(option == "insert"){
            cin >> score;
            nameToScore[name] = score;
        }else{
            if(nameToScore.count(name)){
                cout << nameToScore[name] << endl;
            }else{
                cout << -1 << endl;
            }
        }
    }
}

dict1={}
option=input("")
while option != "end" :
    array = option.split(" ")
    name = array[1]
    if array[0]=="insert" :
        score = array[2]
        dict1.update({name:score})
    else :
        print(dict1.get(name,"-1"))
    option=input("")
母牛的故事

用递归竟然超时
我不讲武德了(眼花ing)

c={
    '1':1,
    '2':2,
    '3':3,
    '4':4,
    '5':6,
    '6':9,
    '7':13,
    '8':19,
    '9':28,
    '10':41,
    '11':60,
    '12':88,
    '13':129,
    '14':189,
    '15':277,
    '16':406,
    '17':595,
    '18':872,
    '19':1278,
    '20':1873,
    '21':2745,
    '22':4023,
    '23':5896,
    '24':8641,
    '25':12664,
    '26':18560,
    '27':27201,
    '28':39865,
    '29':58425,
    '30':85626,
    '31':125491,
    '32':183916,
    '33':269542,
    '34':395033,
    '35':578949,
    '36':848491,
    '37':1243524,
    '38':1822473,
    '39':2670964,
    '40':3914488,
    '41':5736961,
    '42':8407925,
    '43':12322413,
    '44':18059374,
    '45':26467299,
    '46':38789712,
    '47':56849086,
    '48':83316385,
    '49':122106097,
    '50':178955183,
    '51':262271568,
    '52':384377665,
    '53':563332848,
    '54':825604416,
    '55':1209982081
}
n=input()
print(c.get(n))
数字游戏

十分简单而又可爱的一道题

ar=input("")
c=0
for each in ar :
    if each == "1":
        c+=1
print(c)
P - 求数列的和

一个估算的题,简单题
但是借机了解了一下环境,比如EOF之类的

import math
n,m=map(int,input().split())
c=0
if m<= 5 :
    for i in range(0,m) :
        c+=n
        n=round(math.sqrt(n),3)
    print('%.2f' % c)
else :
    for i in range(0,5) :
        c+=n
        n=round(math.sqrt(n),3)
    print('%.2f' % c)

当我高高兴兴写好去提交的时候

在这里插入图片描述
??
。。。。。。。。。。。。

#include<stdio.h>
#include<math.h>
int main(){
	double n,m,i,sum;
	while(scanf("%lf %lf",&n,&m) != EOF){
		sum=n;
		for(i=1;i<m;i++){
			sum=sum+sqrt(n);
			n=sqrt(n);
			}
		printf("%.2lf\n",sum);
		}
	return0;
	}

以后记住了,先看看都能提交什么语言

《深度剖析》章1,2

撸一遍书系统掌握一下。
前面是简介和http详解
curl,CFT中有可能用到
在这里插入图片描述

深度剖析第三章

早上起床读书好呀
今天我们来看看信息探测

通过搜索网站
关键字说明
site指定域名
intext正文中存在关键字的网页
intitle标题中存在关键字的网页
info一些基本信息
inurlURL中存在关键字的网页
filetypr搜索指定文件类型

eg:intext:Powered by Discuz

访问robots.txt看看网页允许爬虫找什么东西

Nmap初体验

一些常用的扫描参数

参数说明
-sTTCPconnect()扫描,会在系统日志里留下大量痕迹
-sS半开扫描,要root,一半不留痕迹
-sPping扫描(扫描端口时默认)
-sA可以穿过防火墙规则集的高级扫描
-sV探测端口服务号版本
-v显示扫描过程(推荐)
-p指定端口
-A全面系统检测
-O探测操作系统
-oN、-oX、-oG以正常、XML、grepable 三种格式将报告写入文件
-iL读取主机列表,如 -iL C:\ip.txt

eg:nmap -sS -p 1-65535 -v 192.168.1.103

在这里插入图片描述

nmap脚本引擎

在Script文件夹中,有一堆“.nse”文件
在后面添加“–script=脚本名称”
具体可参照 http://nmap.org/nsedoc/

eg:扫描敏感目录
nmap -p 80 --script=http-enum.nse www.xxser.com

在扫描中仅进行一次是不够的,
有时候需要递归扫描,(如扫info里的info)
以及针对性扫描。(如abc_info,多看看abc开头的)

第四章漏洞扫描

书里介绍了三个工具

Burp

分享两个

Burp模块详解

Burp Suite 2020 找不到 spider模块?

提一下,终于知道这是什么了
在这里插入图片描述

攻击类型说明
狙击手变量依次破解
破城槌变量同时破解
音叉每个变量对应一个字典
集束炸弹每个变量对应一个字典并尝试每个组合

Burp支持插件,如python等

AWVS

Acunetix Web Vulnerability Scanner
acunetix_WVS 13.基础使用

先啥也看不懂地扫一个漏洞测试网站
http://demo.testfire.net/
在这里插入图片描述
再试试ctfhub上打开的一道题
(留下了qq截图的印记hhh)
在这里插入图片描述

第五章SQL注入

类似读书笔记

注入的分类

书中认为SQL注入只分两类,分别是数字型和字符型
像cookie,post,盲注,延时只是在这两类的基础上在不同位置以不同形式的展现

数字型注入多出现在自动推导变量类型的弱语言中,如PHP

having子句和group by子句

https://blog.csdn.net/qq_36743482/article/details/78464734
SQL中各字句执行顺序:

select col_name from table
where col_name > xxx
group by col_name
having …
order by … desc

尝试having子句
having子句作用:对由sum或其它集合函数运算结果的输出进行限制。

SELECT t.*
from test t
HAVING t.score>80
;

结果:只显示得分80以上的
结论:在不搭配group by 的情况下,使用having子句仅仅对结果进行限制,等价于where条件

尝试group by子句
“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。

https://www.cnblogs.com/jingfengling/p/5962182.html

简单地说,有些像分类汇总

SQL Server

和mysql不太一样的地方,可以准确地定位错误,因此

利用错误消息提取信息

1.这里的枚举当前表和列用到了刚刚的group by和having

select * from users where username= 'root' and password= 'root' group by users.id having 1=1--'

2.利用数据类型错误提取数据
试图把一个字符串和非字符串比较

select from users where username= 'root' and password= 'root' and 1> (select top 1 username from users)
系统函数
函数说明
stuff截取字符串
ascii取ascii码
char根据ascii取字符
getdata返回日期
count返回组中总条数
cast更换数据类型表达式
rand返回随机值
is_srvrolelemember登录名是否为服务器角色
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值