话本小说网 > 脑洞小说 > 斗龙七情
本书标签: 脑洞 

思异初现

斗龙七情

洛小熠早啊,7-630。

凯风早啊,7-629。

洛小熠昨晚睡得怎么样啊?

凯风睡得倒很舒服,就是有点头晕。

洛小熠你这么一说,我也有点,还是先去看看7-631他们四个吧!

凯风我想他们应该很快就醒了吧,不过关心他们干什么?

洛小熠我也不知道,好像有点怪怪的。

凯风我也有点感觉,是挺怪的,算了,咱们等一会儿吧!

洛小熠好在早上有充足的时间,不怕上课迟到。

凯风那就先等着吧。

十分钟后

洛小熠7-631她出来了。

百诺昨晚睡得真舒服,嗯(撇见7-628和7-629)7-628,7-629你们起这么早?

凯风是啊,早起有利健康。

洛小熠没错。

百诺头怎么有点晕,没睡好吗?

凯风可能是吧,现在我头也有点晕。

洛小熠我还以为只有我和7-630头晕呢,但看样子人还不少。

百诺不知道,剩下三个会不会也一样?

洛小熠等他们出来就知道了。

7-5147-631,你们好啊。

凯风7-514你好啊。

7-514你们这是在干什么呢?

洛小熠我们在等人,等7-632,7-633和7-634。

7-514好吧,对了,别忘了去食堂吃早饭,不吃早饭对身体伤害可大了。

洛小熠说的对,不过我们不知道食堂在哪里。

7-514也对你们昨天也没有参观学校,自然不知道食堂在哪,正好早上的时间较为充裕等剩下三个人到了我带你们一起去吧!

洛小熠那实在是太感谢了。

子耀(推开宿舍门)嗯,7-629你们聚在一起干什么呢?

凯风当然是等7-632你们三个一起吃饭了。

子耀那我觉得还得再等五分钟。

百诺为什么要在等五分钟?

子耀唉,你们不知道7-633和7-634他们就在我的左边两个卧室,半夜被他们隔墙吵架声吵得有难以入睡,还是把枕头捂着耳朵才勉强入睡。

洛小熠真可怜7-632,真不知道7-633和7-634什么时候才会醒?

子耀我只记得我睡着之后他们似乎还在吵导致我的头现在晕乎乎的。

洛小熠(两只猞猁耳朵动了动)我好像听见他俩快醒了。

刚说完门就被啪的打开了。

东方末(一脸疲惫)我说,我说7-634,你说的那些就算对你也成不了。

蓝天画(死气沉沉)哼,但,但也能至少说明我比你聪明,你,自己想想不出来呢,呵呵。

东方末哼昨晚要不是跟你争论,我现在就能好好睡个觉,头也不用这么晕了。

蓝天画要怪就怪你自己,这么笨,早些承认不就早就睡觉了,把我也弄的好困,好晕。

洛小熠7-633,7-634你俩就别吵了,看你俩昨天晚上吵的连7-632都没睡好觉。

子耀呜呜呜,我真的是太难了。

东方末真是抱歉7-632。

蓝天画下次我会在白天让他承认我是对的,绝不在晚上再打扰你。

7-514好啦,看你们头好像都挺晕的,看样子刚来的时候好像也没怎么好好吃饭?哦对了,当时你还不知道食堂在哪里。

洛小熠是啊,肚子现在还饿着呢。

7-514走吧,跟我来,我带你们去食堂。

子耀我们走吧。

洛小熠来了。

凯风(呼出一团冷气)走吧。

蓝天画回来再跟你算账。

东方末是我跟你算账。

蓝天画哼。

东方末哼。

百诺唉,还真是一对欢喜冤家。

———————————————————

橡木色的会议厅内,巨大的时钟在墙上不停转动,持续的发出噔,噔,噔的声响。

惊魂阙统治者,怖天子上层已筛选了两名新的成员,今后他们会和各位一同完成任务。

惊魂阙部下,恐阎罗【还不知这两人是什么来头,毕竟被上层改造过后的普通人都能成为以一敌百的战士。】

惊魂阙部下,粟阴鬼【想必上层所选的人物应当是有些背景的人,不过我现在还不能乱想,万一被猜到了心声,可就惨了】

惊魂阙统治者,怖天子人到了,进来吧。

牧者(躯体:惨白肌肤覆盖冰裂状透明晶壳,裂痕中流动幽蓝能量脉络

面部:左眼化为钴蓝色结晶球体,右眼保留原貌但瞳孔刻有符文

着装:银灰色立领长袍,肩部悬浮两枚棱柱形「哀鸣核心」,随情绪波动闪烁)

创骸(躯体:紫黑色血管状光纹在皮肤下搏动,关节处嵌有暗金生物环

面部:刘海遮蔽右眼,左眼虹膜呈破碎镜面状,倒映扭曲阴影

着装:

不对称黑曜石胸甲,左肩披暗紫色生物材质斗篷,表面浮现金色方程式,腰间悬挂三枚悬浮的猩红棱锥)

惊魂阙统治者,怖天子他们分别是牧者,创骸。

惊魂阙部下,粟阴鬼衣着倒是花里胡哨,不知真实战场可以留下这件衣服的可能。

惊魂阙部下,恐阎罗在我看来他们最多也只有15岁,真的能胜任吗?

惊魂阙统治者,怖天子这点由他们自己证实。

惊魂阙部下,恐阎罗我到不觉得有多厉害。

惊魂阙部下,粟阴鬼(轻咳一声,示意不要说话。)

惊魂阙统治者,怖天子都回去吧,还有事要等着你们处理。

惊魂阙部下,恐阎罗是。

惊魂阙部下,粟阴鬼是。

创骸是。

牧者是。

—————————————————————

洛小熠这里的早饭真好吃。

子耀没错,而且菜品也是丰富多样。

百诺能吃饱就行。

蓝天画(手中还拿着从食堂带出来的一小杯蔬菜)蔬菜也很新鲜。

东方末你也就会吃蔬菜,毕竟你是一头“鹿”。

蓝天画别以为我不知道7-634你背后还藏着一根鸡腿呢。

东方末你不也一样。

蓝天画怎么说我也是拿着光明正大的吃,你呢,我就不多说了。

东方末你…(想不出什么话来反驳)

子耀又在小吵吗?吃饭的时候也不免说了几句。

洛小熠7-632不用管这么多,他们这是,嗯——算了我也说不清。

凯风有些事咱们管不了,看着就行了。

洛小熠确实7-630,真不知道你吹出的气都是冷气,这个问题什么时候才能给你解决。

凯风连K博士都没办法完全解决,说明这个要想治好肯定很难。

洛小熠难是难,但是没说不能解决,想总有一天就会解决的掉这个毛病。

7-514唉——(似乎心情有些失落)

凯风7-514,你怎么了?

7-514我在想周五的“综合实战”能不能应付的了。

洛小熠“综合实战”那是什么?

7-514网络技术我们会学习四天,第五天会迎来对我们这四天学习的测验,六人一组分为红蓝两方并且都是同一个老师教的也不知道最后的胜负如何。

子耀我认为现在还不必考虑那些,认真学认真听就可以了。

7-514你们不懂,你们来之前这里的这里的学生可以说是妖孽般的存在,他们一点就通还能一举反三,刚来的学生可以说是被吊打的存在。

7-514(看了眼有些惊讶的7-630几人)所以加油学吧!哦时间快到了,还有十分钟得赶紧回教室。

百诺(见7-514离开,回过神来)时间不早了,我们准备一下课上需要的物品就尽快赶去。

洛小熠好。

7-629六人急匆匆的赶向教室,刚到教室上课铃就响了。

第二节课:SQL注入攻击与防御

弦庭·陈老师各组排头的一人收下作业。

作业被几名排头的同学送往办公室。

弦庭·陈老师(陈老师的指尖在触控板上轻敲,屏幕上弹出「SQL注入」的字样)第二节课:SQL注入——最常见的网络攻击。(他的目光扫过全班学生)SQL注入的本质是把恶意SQL语句插入到用户输入中,让服务器执行。比如登录页面的用户名输入框,你输入‘admin’ or ‘1’=‘1’,服务器执行的SQL语句会变成‘SELECT * FROM users WHERE username=‘admin’ or ‘1’=‘1’ AND password=‘xxx’,其中‘or ‘1’=‘1’’是永真条件,所以不管密码是什么,都能登录。

洛小熠(洛小熠的猞猁耳贴向屏幕,他的尾尖在触控板上画了个登录页面的示意图)老师,那如果输入框是数字型的,比如‘id=1’,怎么注入?

弦庭·陈老师(陈老师的指尖在触控板上轻敲,屏幕上弹出「数字型注入」的例子)比如‘id=1 or 1=1’,服务器执行的SQL语句是‘SELECT * FROM users WHERE id=1 or 1=1’,这样会返回所有用户的数据。(他调出一个数字型注入的测试页面)看这个页面,输入‘id=1’,返回一个用户;输入‘id=1 or 1=1’,返回所有用户,这就是数字型注入。

凯风(萨摩耶尾轻扫终端,终端温度下降了一点,说话时依旧带着冷气)老师,那怎么防御SQL注入?

弦庭·陈老师(陈老师的声音像寒冰一样冷)防御SQL注入的核心是‘分离数据与指令’,具体方法有三个:1. 使用预编译语句,比如MySQL的prepare()函数;2. 对用户输入进行过滤,比如过滤单引号、注释符;3. 最小化数据库用户权限,比如禁止使用root用户连接应用。(他调出一个预编译语句的例子)比如‘SELECT * FROM users WHERE username=? AND password=?’,其中‘?’是占位符,用户输入的内容会被当作数据,不会被当作指令执行。

蓝天画(手指在终端上敲了敲,发出清脆的「叮」一声)老师,那如果用户输入的是中文,比如‘张三’,预编译语句会不会有问题?

弦庭·陈老师(陈老师的眼镜片闪了一下)不会,预编译语句会自动处理字符编码,比如UTF-8,所以中文输入没问题。(他调出一个中文输入的测试页面)看这个页面,输入‘张三’,预编译语句会把‘张三’当作数据,不会执行恶意SQL语句。

东方末(熊爪在键盘上敲了敲,发出「咚咚」的声音)老师,那如果应用用的是ORM框架,比如Hibernate,会不会防止SQL注入?

弦庭·陈老师(陈老师的指尖在触控板上轻敲,屏幕上弹出「ORM框架」的例子)是的,ORM框架会自动使用预编译语句,比如Hibernate的‘from User where username=:username’,其中‘:username’是占位符,用户输入的内容会被当作数据,不会被当作指令执行。

百诺(三条狐尾同时操作三个终端,左尾在看SQL注入的案例,中尾在分析SQL语句,右尾在记录笔记。)老师,根据OWASP Top 10,SQL注入是排名第一的漏洞,对吗?

弦庭·陈老师(陈老师点了点头。)是的,SQL注入是最常见、最危险的网络攻击之一,比如2013年Target数据泄露事件,就是因为SQL注入导致的,泄露了7000万用户的信息。(他调出Target数据泄露的新闻。)看这个新闻,黑客通过SQL注入获取了Target的数据库权限,窃取了用户的信用卡信息。

子耀(手中把玩着自己的尾巴)老师,那怎么检测SQL注入?

弦庭·陈老师(陈老师的指尖在触控板上轻敲,屏幕上弹出「SQL注入检测」的例子)可以用SQLmap工具,比如‘sqlmap -u http://test.com/login.php --data ‘username=admin&password=123’ --dbs’,这个命令会检测登录页面的SQL注入漏洞,并获取数据库列表。(他调出SQLmap的运行界面。)看这个结果,SQLmap发现了‘users’表,里面有‘username’和‘password’字段。

洛小熠(猞猁耳竖起来。)老师,我们今天能不能用SQLmap做实验?

弦庭·陈老师陈默老师的目光扫过全班学生:可以,今天的实验是用SQLmap检测一个存在SQL注入漏洞的测试页面,获取flag。(他的指尖在触控板上轻敲,屏幕上弹出测试页面的地址。)*********************************

全班学生立刻动手操作。

7-629的猞猁耳贴向终端,他的尾尖在触控板上输入「sqlmap -u **********************/login.php --data ‘username=admin&password=123’ --dbs」,终端的扬声器发出高频声音,说明SQLmap正在运行。

7-630的萨摩耶尾轻扫终端,调整着终端温度,他的指尖在触控板上输入「sqlmap -u **********************/login.php --data ‘username=admin&password=123’ --tables」,终端显示数据库表列表;

7-633的手在终端上敲着,发出清脆的蹄音,她的指尖在触控板上输入「sqlmap -u **********************/login.php --data ‘username=admin&password=123’ --columns」,终端显示表的字段列表。

7-634的熊爪在键盘上敲着,发出「咚咚」的声音,他的指尖在触控板上输入「sqlmap -u **********************/login.php --data ‘username=admin&password=123’ --dump」,终端显示用户的用户名和密码。

7-631的三条狐尾同时操作三个终端,左尾在分析SQLmap的输出,中尾在记录flag,右尾在写实验报告。

7-632的金猴尾缠上百诺的狐尾,正好奇地看着7-631的实验报告。

弦庭·陈老师(陈老师的目光扫过全班学生,他的指尖在触控板上轻敲,屏幕上弹出「flag」的字样)flag是‘sql_injection_101’,你们有没有获取到?

洛小熠(猞猁耳竖起来,他的尾尖在触控板上输入「flag: sql_injection_101」。)老师,我获取到了。

凯风(萨摩耶尾轻扫屏幕,他的指尖在触控板上输入「flag: sql_injection_101。)老师,我也获取到了。

蓝天画(手指在终端上敲击着,发出清脆的「叮」一声。)老师,我也获取到了。

东方末(熊爪在键盘上敲着,发出「咚咚」的声音。)老师,我也获取到了。

百诺(三条狐尾同时操作三个终端,她的指尖在触控板上输入「flag: sql_injection_101亅。)老师,我也获取到了。

子耀(尾巴悄悄从口袋里拿出一颗糖,趁老师不注意塞进嘴里)老师,我也获取到了。

弦庭·陈老师(看见了7-632的小动作,但并没有制止,只是轻咳两声让他注意。)很好,你们都获取到了flag。接下来,我们要学习SQL注入的防御方法。(他的指尖在触控板上轻敲,屏幕上弹出「预编译语句」的例子。)比如PHP的MySQLi预编译语句:stmt =conn->prepare(‘SELECT * FROM users WHERE username=? AND password=?’); stmt->bind_param(‘ss’,username, password);stmt->execute(); 其中‘?‘是占位符,username和password是用户输入的内容,会被当作数据,不会被当作指令执行。

洛小熠(猞猁耳贴向屏幕,他的尾尖在触控板上画了个预编译语句的示意图。)老师,那如果用户输入的是‘admin’ or ‘1’=‘1’,预编译语句会怎么处理?

弦庭·陈老师(陈老师的指尖在触控板上轻敲,屏幕上弹出「预编译语句处理」的例子。)预编译语句会把‘admin’ or ‘1’=‘1’当作数据,所以SQL语句会变成‘SELECT * FROM users WHERE username=‘admin’ or ‘1’=‘1’ AND password=‘xxx’,其中‘admin’ or ‘1’=‘1’是用户名,不是指令,所以不会执行。

凯风(萨摩耶尾垂落于地)陈老师,那如果应用用的是PDO框架,会不会防止SQL注入?

弦庭·陈老师(陈老师的眼镜片闪了一下。)是的,PDO框架也支持预编译语句,比如‘stmt =pdo->prepare(‘SELECT * FROM users WHERE username=? AND password=?’); stmt->execute([username, password]); 其中‘?‘是占位符,username和$password是用户输入的内容,会被当作数据,不会被当作指令执行。

蓝天画(手有意无意地滑动着鼠标)陈老师,那如果用户输入的是‘张三’,预编译语句会不会有问题?

弦庭·陈老师(陈老师的声音像寒冰一样冷。)不会,预编译语句会自动处理字符编码,比如UTF-8,所以中文输入没问题。

东方末(熊爪在键盘上敲着,发出「咚咚」的声音。)老师,那如果应用用的是老版本的PHP,没有MySQLi扩展,怎么办?

弦庭·陈老师(陈老师的指尖在触控板上轻敲,屏幕上弹出「过滤用户输入」的例子。)可以用过滤函数,比如PHP的htmlspecialchars()函数,把单引号、双引号、小于号、大于号等字符转化为HTML实体,比如‘’转化为‘'’,‘“’转化为‘"’,‘<’转化为‘<’,‘>’转化为‘>’,这样恶意SQL语句就不会被执行。

百诺(三条狐尾同时操作三个终端,左尾在看过滤函数的例子,中尾在分析过滤后的结果,右尾在写实验报告。)老师,根据OWASP的建议,过滤用户输入应该使用‘允许列表’,而不是‘禁止列表’,对吗?

弦庭·陈老师(陈老师点了点头。)是的,允许列表是只允许用户输入特定的字符,比如字母、数字、下划线,禁止其他字符;禁止列表是禁止用户输入特定的字符,比如单引号、双引号,但禁止列表很容易被绕过,比如用‘%27’代替‘’,所以允许列表更安全。

子耀(尾巴这次没什么动作,可能是知道老师发现了自己的小动作。)老师,允许列表的正则表达式是不是‘^[a-zA-Z0-9_]+$’?

弦庭·陈老师(陈老师的指尖在触控板上轻敲,屏幕上弹出「允许列表」的正则表达式。)是的,这个正则表达式只允许字母、数字、下划线,其他字符都会被拒绝,所以恶意SQL语句无法注入。

课堂上的时间过得很快,陈默老师的指尖在触控板上轻敲,屏幕上弹出「作业」两个字:「1. 用SQLmap检测一个存在SQL注入漏洞的测试页面,获取flag;2. 编写一个使用预编译语句的登录页面(PHP+MySQL);3. 总结SQL注入的常见类型(数字型、字符型、盲注)。」

弦庭·陈老师(他的目光扫过全班学生)下堂课上课我要检查作业,不许偷懒。

第二节课课后:实验报告。

7-631六人坐在实验室的讨论区,面前的全息屏幕显示着白天的SQL注入实验结果。

7-629的猞猁耳贴向7-630的终端,正查看7-630的实验报告。

7-630的萨摩耶尾轻扫7-629的终端,调整着终端温度。

7-634的手拿着专用笔,发出清脆的笔声,正写着自己的实验报告;

7-633的熊爪在键盘上敲着,发出「咚咚」的声音,正修改自己的实验报告。

7-631三条狐尾同时操作三个终端,左尾在看SQL注入的案例,中尾在分析实验结果,右尾在写实验报告。

7-632的嘴巴没有停过,饼干也快消灭光了。

洛小熠(猞猁耳转向7-630)你今天的实验报告,有没有写SQL注入的防御方法?

凯风(口中呼出一口冷气,面前的杯子上结出一层薄冰霜)是的,我写了PHP的MySQLi预编译语句,比如stmt =conn->prepare(‘SELECT * FROM users WHERE username=? AND password=?’); stmt->bind_param(‘ss’,username, password);stmt->execute();

洛小熠(猞猁耳竖起来)很好,我也是这么写的。

蓝天画(手指轻敲屏幕)7-631你能帮我检查下我今天的实验报告有没有漏掉什么?

百诺(左尾指向屏幕上的「SQL注入类型」)你漏掉了盲注,比如布尔盲注、时间盲注,这些都是SQL注入的常见类型。

蓝天画(满面枯燥)真是的我漏掉了,今晚要改。

东方末(熊爪敲击屏幕)7-631你能帮我检查下我今天的实验报告有没有写错吗?

百诺(中尾指向屏幕上的「预编译语句」)你把stmt->bind_param(‘ss’,username, password)写成了stmt->bind_param(‘s’, username,password),应该是两个‘s’,因为username和password都是字符串。

东方末(琥珀色瞳孔收缩成线)啊,我写错了,明天要改。

蓝天画(在一旁偷笑)这下可算是有人陪我了。

子耀(金猴尾缠上7-629的手)7-629不能帮我检查下我今天的实验报告,有没有写错?

洛小熠(仔细检查着,目光最后停在了一处)你把允许列表的正则表达式写成了‘^[a-zA-Z0-9]+’,漏掉了下划线,应该是‘^[a-zA-Z0-9_]+’。

子耀(金猴尾耷拉下来)今晚有得忙了。

凯风(萨摩耶尾轻扫屏幕)时间不早了,我们明天还要上课,赶紧回去休息吧。

洛小熠(猞猁耳竖起来)好,那我们收拾收拾一起走

六人收拾好物品一起向着宿舍走去。

洛小熠7-633和7-634你俩今晚可得清净一些。

蓝天画那是当然,今天没什么可吵的。

东方末说的没错今天我们都有自己的事要干。

凯风同一件事?

子耀就是…

东方末我们要一起去改报告。

子耀我们要一起去改报告。

蓝天画我们要一起去改报告。

7-514你们好。

洛小熠7-514你怎么来了?

7-514因为我的宿舍跟你们是一栋楼。

凯风难怪早上能碰巧在一起,原来跟我们的宿舍在一栋楼啊

洛小熠早点休息,周五比赛加油。

7-514放心吧,但你们今晚也得早睡,虽然你们有几个人需要改报告。

7-514好了,不说了,再见。

凯风再见。

洛小熠再见。

百诺再见。

子耀7-514姐姐,再见。

东方末再见。

蓝天画拜拜。

7-514【他们的心灵还真是纯洁。】(向着宿舍赶去。)

洛小熠我们也。

凯风7-629你怎。

六人都停顿了一瞬。

洛小熠我们为什么要活着?

凯风活着的意义是什么?

蓝天画学习知识为了活着,为什么只有知识才能让我活着?

东方末吵架没有意义,为什么要吵架?为什么喜欢吵架?

百诺学习的知识为别人工作,我们获得什么,为什么获得,为乐趣还是为了自己卑微的活着?

子耀诚信只是社会驯化工具,为何诚信,何为诚信?

洛小熠为什么?

凯风为什么?

百诺为什么?

蓝天画为什么?

子耀为什么?

东方末为什么?

还未回宿舍的学生,请立即返回宿舍。

还未回宿舍的学生,请立即返回宿舍。

……

洛小熠(回过神来)我们在干嘛?

东方末不记得了。

子耀为什么我们还呆在这里?

蓝天画我得回去赶报告了。

百诺头有点昏,还是得赶紧回去睡觉吧!

凯风那快走吧。

洛小熠明天见。

六人都回了寝室,一刻不能耽误。

腐化程度35%

—————————————————

8567字

上一章 初见,弦庭 · 遗落者刻钟学院 斗龙七情最新章节 下一章 生未雾途