安全类错题集

安全类错题集

  1. 常用android代码混淆工具:proguard

  2. android app常见的调试手段有:重打包apk并设置AndroidManifest.xml的debuggable属性为true;ida或smalidea动态调试;frida hook框架;xposed hook框架。

  3. int i = s.size() //错误

    String 类取长度的方法为: length() 。

  4. 在Java多线程中,请用下面哪种方式不会使线程进入阻塞状态:yield()。 yield:让步,运行态->就绪态 。

  5. redis未授权的利用方法 :写入ssh秘钥;向web目录中写入webshell;向crontab中写入计划任务。

  6. HTTP返回码301代表永久性转移,对于301请求,搜索引擎或者浏览器都可以把跳转后的地址缓存下来,下一次不必发送这个请求。

  7. PIE全称是位置无关的可执行文件,中文解释为地址无关重定向文件,该技术是一个针对的代码段(.text),数据段(.data),未初始化变量变量(.bss)等固定地址的一个防护技术,如果程序开启了PIE保护的话,在每次加载程序时都转换加载地址,从而不能通过ROPgadget等一些工具来帮助解题。

  8. 端口服务可能导致命令执行:redis;mysql;rsync。

  9. Android应用Receiver注册的两种形式是:静态注册和动态注册。

  10. 爬虫和反爬虫定义:爬虫:使用任何技术手段,批量获取网站信息的一种方式。反爬虫:使用任何技术手段,阻止别人批量获取自己网站信息的一种方式。

  11. notify()方法只唤醒一个等待线程并使该线程执行,如果有多个线程等待一个对象,这个方法只会唤醒其中一个线程,选择哪个线程取决于操作系统对多线程管理的实现。notifyall()会唤醒所有等待的线程,哪个线程将会第一个处理取决于操作系统的实现。

  12. 当线程执行wait()方法时,会释放当前的锁,然后让出CPU,进入等待状态,属于Object的成员方法。

  13. sleep()是一个静态方法,一个线程调用sleep方法后并不会释放他所持有的所有对象锁,但是sleep的运行过程中有可能被其他对象调用它的interrupt(),产生InterruptedException异常,如果程序不捕获这个异常,线程就会异常终止,进入TERMINATED状态,如果程序捕获了这个异常,那么就会继续执行catch语句块以及以后的代码。

  14. 数字签名 elgamal算法的原理是扩展欧几里得定理。

  15. 重放攻击(Replay Attacks)又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。

  16. Smurf攻击通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包,来淹没受害主机,最终导致该网络的所有主机都对此ICMP应答请求做出答复,导致网络阻塞。是一种拒绝服务攻击。

  17. ARP欺骗通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线。

  18. shell脚本的特殊变量:$0(当前脚本文件名)、$n(传递给脚本或函数的参数)、$#(传递给脚本或函数的参数个数)、$*(传递给脚本或函数的所有参数,“”包含时会表现为一个整体)、$@(传递给脚本或函数的所有参数)、$?(上个命令的退出状态或函数的返回值)和$$(当前shell的进程ID;对于shell脚本,就是脚本所在进程ID)

  19. 安卓代码混淆原因: 优化java的字节码 ; 减小apk文件的大小,在混淆过程中会删除未使用过的类和成员 ; 代码安全,使类、函数、变量名随机变成无意义的代号形如:a,b,c…之类。防止app被反编译之后能够很容易的看懂代码。

0%